/*
public class TreeLinkNode {
int val;
TreeLinkNode left = null;
TreeLinkNode right = null;
TreeLinkNode next = null;
TreeLinkNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public TreeLinkNode GetNext(TreeLinkNode pNode)
{
//异常判断
if(pNode == null){
return null;
}
//若右子树不为空,则下一个节点是右子树的最左子树节点
if(pNode.right!=null){
TreeLinkNode tmp = pNode.right;
while(tmp.left!=null){
tmp = tmp.left;
}
return tmp;
}
//若左子树为空,则依次向上遍历其父节点,直到某个节点是其父节点的左子树
TreeLinkNode tmp = pNode;
while(tmp.next!=null){
if(tmp.next.left==tmp){
return tmp.next;
}
tmp = tmp.next;
}
return null;
}
}