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

题目

在这里插入图片描述

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

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

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

在这里插入图片描述

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;
       }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值