原题链接在这里:https://leetcode.com/problems/populating-next-right-pointers-in-each-node/
递归调用,如果root.next不为null, root.right.next借助于root.next.left, 然后root.left.next指向root.right.
若是算上递归,Space O(logn).
AC Java:
/**
* 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) {
if(root == null){
return;
}
if(root.right != null && root.next != null){
root.right.next = root.next.left;
}
if(root.left!=null){
root.left.next = root.right;
}
connect(root.right);
connect(root.left);
}
}