码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-07-24 17:28:38      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:ons   div   pre   bin   str   etc   with   pull   二叉树   

题目:

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

标签:ons   div   pre   bin   str   etc   with   pull   二叉树   

原文地址:http://www.cnblogs.com/271934Liao/p/7229748.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!