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;
        }
    }
};
全部评论

相关推荐

learYuan:🐕看了都摇头
点赞 评论 收藏
分享
评论
8
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务