[LeetCode] 117. Populating Next Right Pointers in Each Node II Java

Posted BrookLearnData

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 117. Populating Next Right Pointers in Each Node II Java相关的知识,希望对你有一定的参考价值。

题目:

Follow up for problem "Populating Next Right Pointers in Each Node".

What if the given tree could be any binary tree? Would your previous solution still work?

Note:

  • You may only use constant extra space.

For example,
Given the following binary tree,

         1
       /        2    3
     / \        4   5    7

After calling your function, the tree should look like:

         1 -> NULL
       /        2 -> 3 -> NULL
     / \        4-> 5 -> 7 -> NULL

题意及分析:给出棵树,将树的每层用next指针链接起来。和上一题不同的是这里是一棵随意的二叉树。这里可以使用一个节点保存每一层的第一个节点,然后遍历该层就行。具体看代码注释。
代码:
/**
 * Definition for binary tree with next pointer.
 * public class TreeLinkNode {
 *     int val;
 *     TreeLinkNode left, right, next;
 *     TreeLinkNode(int x) { val = x; }
 * }
 */
public class Solution {
    public void connect(TreeLinkNode root) {
        while(root!=null){
            TreeLinkNode tempChild = new TreeLinkNode(0);       //记录下一层的首节点
            TreeLinkNode curChild = tempChild;
            while (root!=null){     //遍历某一层的节点,并将该层节点的子节点从左到右添加到下一层中去
                if(root.left!=null){
                    curChild.next=root.left;
                    curChild=curChild.next;
                }
                if(root.right!=null){
                    curChild.next=root.right;
                    curChild=curChild.next;
                }
                root = root.next;
            }
            root = tempChild.next;      //将下一层的首节点装载到root,遍历下一层
        }
    }
}

 

 


以上是关于[LeetCode] 117. Populating Next Right Pointers in Each Node II Java的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode] 117. 填充同一层的兄弟节点 II

LeetCode第117题—填充每个节点的下一个右侧节点指针II—Python实现

LeetCode 117:Populating Next Right Pointers in Each Node II

leetcode@ [116/117] Populating Next Right Pointers in Each Node I & II (Tree, BFS)

《LeetCode之每日一题》:117.颜色分类

LeetCode-117-Populating Next Right Pointers in Each Node II