C++/代码:
二叉树的下一个结点
http://www.nowcoder.com/questionTerminal/9023a0c988684a53960365b889ceaf5e
C++/代码:
class Solution {
public:
TreeLinkNode* GetNext(TreeLinkNode* pNode)
{
if(pNode->right) {
pNode = pNode->right; //此节点是否有右子树
while(pNode->left) pNode = pNode->left; //寻找右子树最左的节点数,最左节点就是其下一个节点
return pNode;
}
//无右节点
else {
while(pNode->next && pNode == pNode->next->right) pNode = pNode->next; //判定是不是父亲的右节点,和一直是右节点
return pNode->next;
}
}
};