LeetCode:Populating Next Right Pointers in Each Node II

来源:互联网 发布:国产密码算法及应用 编辑:程序博客网 时间:2024/06/03 14:38

Populating Next Right Pointers in Each Node II



Total Accepted: 63428 Total Submissions: 192670 Difficulty: Hard

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

Subscribe to see which companies asked this question

Hide Tags
 Tree Depth-first Search
Hide Similar Problems
 (M) Populating Next Right Pointers in Each Node




































java code:

/** * 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) {                TreeLinkNode cur = root; // 当前层当前结点        TreeLinkNode nextLevelHead = null; // 下层头结点        TreeLinkNode prev = null; // 下层前向结点                while(cur != null) {                        while(cur != null) {                if(cur.left != null) {                    if(prev != null)                        prev.next = cur.left;                    else                        nextLevelHead = cur.left;                    prev = cur.left;                }                                if(cur.right != null) {                    if(prev != null)                        prev.next = cur.right;                    else                        nextLevelHead = cur.right;                    prev = cur.right;                }                cur = cur.next;            }                        // 移到下一层            cur = nextLevelHead;            nextLevelHead = null;            prev = null;        }    }}


0 0