1.题目
2.解法
public class Solution {
// 将树的情况整个分析
public TreeLinkNode GetNext(TreeLinkNode pNode)
{
if(pNode == null){
return null;
}
// 如果右结点不为空,那么就是右结点最左结点,否则就是自身
if(pNode.right != null){
pNode = pNode.right;
while(pNode.left != null){
pNode = pNode.left;
}
return pNode;
}
TreeLinkNode node = null;
// 如果父亲结点不为null,有两种情况,一种是左结点,另外一种是父亲结点的父亲结点...
while(pNode.next != null){
node = pNode.next;
if(node.left == pNode){
return node;
}
pNode = node;
}
// 尾结点,为null
return null;
}
}
时间复杂度为O(n),空间复杂度为O(1)