• [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,遍历下一层
            }
        }
    }
  • 相关阅读:
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    软件工程实践总结
  • 原文地址:https://www.cnblogs.com/271934Liao/p/7229748.html
Copyright © 2020-2023  润新知