LeetCode——Populating Next Right Pointers in Each Node II

it2025-06-25  7

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 原题链接:https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/

题目:前一题的继续。假设给定的是随意的二叉树。前题的代码还能用吗?

思路:显然,前一题不能用了。仅仅好用层序遍历。

public void connect(TreeLinkNode root) { if(root == null) return; TreeLinkNode parent = root,pre,next; while(parent != null){ pre = null; next = null; while(parent != null){ if(next == null) next = (parent.left == null) ? parent.right : parent.left; if(parent.left != null){ if(pre != null){ pre.next = parent.left; pre = pre.next; }else pre = parent.left; } if(parent.right != null){ if(pre != null){ pre.next = parent.right; pre = pre.next; }else pre = parent.right; } parent = parent.next; } parent = next; } }

转载于:https://www.cnblogs.com/bhlsheji/p/5170847.html

最新回复(0)