思路:分为两种大的情况:
如果该结点有右子树就循环查找左子树最左节点,如果该结点没有右子树就循环查找 它是它父亲节点的左孩子的节点, 如果遍历到根节点还没有找到,则返回null没有下一个节点了
public class Solution {
public TreeLinkNode GetNext(TreeLinkNode pNode)
{
if(pNode.right!=null){
TreeLinkNode cur = pNode.right;
while(cur.left!=null){
cur = cur.left;
}
return cur;
}
while(pNode.next!=null){
if(pNode.next.left==pNode){
return pNode.next;
}else{
pNode= pNode.next;
}
}
return null;
}
}
京公网安备 11010502036488号