题目描述
解题思路:主要分两种情况,第一种是有右子树,那么该节点的下一个节点就是右子树的最左节点;第二种是没有右子树,那么该节点的下一节点就是该节点的第一个有左子树的父节点。(意思就是该节点是目标节点的左子树最后一个)
解题代码 :
/*
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 pNode;
}
if(pNode.right != null){
pNode = pNode.right;
while(pNode.left != null){
pNode = pNode.left;
}
return pNode;
}
while(pNode.next != null){
if(pNode.next.left == pNode){
return pNode.next;
}
pNode= pNode.next;
}
return null;
}
}