这一篇是我犯下的错误
public class Solution {
public TreeLinkNode GetNext(TreeLinkNode pNode){
if(pNode.left==null)
return null;
if(pNode.right!=null){
TreeLinkNode rNode= pNode.right;
while(rNode.left!=null)
rNode = rNode.left;
return rNode;
}else{
//需要判断parent是否为null
TreeLinkNode parent= pNode.next;
while(parent.left!=pNode){
pNode=parent;
parent=parent.next;
}
return parent;
}
//不能放return,无效返回
}
}
错误一:没有判断parent是否为null,且下方代码更为巧妙
while (pNode.next != null) {
TreeLinkNode parent = pNode.next;
if (parent.left == pNode)
return parent;
pNode = pNode.next;
}
错误二:return的位置