【LeetCode-中等题】117. 填充每个节点的下一个右侧节点指针 II

文章目录

    • 题目
    • 方法一:常规方法参考链接
    • 方法二:不使用额外的空间,把每一层看做一个链表,将其链接起来

题目

【LeetCode-中等题】117. 填充每个节点的下一个右侧节点指针 II_第1张图片

方法一:常规方法参考链接

【LeetCode-中等题】116. 填充每个节点的下一个右侧节点指针

方法二:不使用额外的空间,把每一层看做一个链表,将其链接起来

【LeetCode-中等题】117. 填充每个节点的下一个右侧节点指针 II_第2张图片

class Solution {
    public Node connect(Node root) {
        if(root == null) return null;
        Node cur = root;
        Node dummy = null;
        //此循环切换层级
        while(cur != null){
             dummy = new Node(-1);//哑结点
             Node pre = dummy;//pre  用作前置指针 用于将同一层的链接起来
             //此循环处理同一层的cur
             while(cur!=null){
                 if(cur.left!=null){//链接左孩子
                     pre.next = cur.left;
                     pre = pre.next;
                 }
                 if(cur.right!=null){//链接右孩子
                     pre.next = cur.right;
                     pre = pre.next;
                 }
                 cur = cur.next; //切换下一个同层节点
            }
            //切换下一层
            cur  = dummy.next;
         }
          return root;
       }
    }


你可能感兴趣的:(力扣,#,中等题,leetcode,算法,职场和发展)