思路:模拟中序遍历
public class Solution {
public TreeLinkNode GetNext(TreeLinkNode pNode) {
return pNode.right == null ? toUp(pNode) : toRight(pNode.right);
}
TreeLinkNode toRight(TreeLinkNode node) {
if (node.left == null) return node;
return toRight(node.left);
}
TreeLinkNode toUp(TreeLinkNode node) {
if (node.next == null) return null;
if (node == node.next.left) return node.next;
return toUp(node.next);
}
}