您的位置:首页 > Web前端 > Node.js

[LeetCode]Populating Next Right Pointers in Each Node II

2015-12-02 11:58 701 查看
public class Solution {
public void connect(TreeLinkNode root) {
if (root == null) {
return;
}
TreeLinkNode pre = root;
TreeLinkNode next = find_next(pre);
while (next != null) {
TreeLinkNode tmp = next;
while (pre != null) {
if (tmp == pre.left) {
if (pre.right != null) {
tmp.next = pre.right;
tmp = tmp.next;
pre = pre.next;
} else {
pre = pre.next;
}
} else {
if (pre.left != null) {
tmp.next = pre.left;
tmp = tmp.next;
} else if (pre.right != null && tmp != pre.right) {
tmp.next = pre.right;
pre = pre.next;
tmp = tmp.next;
} else {
pre = pre.next;
}
}
}
pre = next;
next = find_next(next);
}
}
public TreeLinkNode find_next (TreeLinkNode pre) {
if (pre.left != null) {
return pre.left;
} else if (pre.right != null) {
return pre.right;
} else if (pre.next != null) {
return find_next(pre.next);
} else {
return null;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: