题解:#找出二叉树的下一个结点#

https://www.nowcoder.com/share/jump/5876869471694504576132

/*
struct TreeLinkNode {
    int val;
    struct TreeLinkNode *left;
    struct TreeLinkNode *right;
    struct TreeLinkNode *next;
    TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL) {
        
    }
};
*/
class Solution {
public:
    vector<TreeLinkNode*> nodes;

    void inOrder(TreeLinkNode* root)
    {
        if(root==nullptr)
        {
            return;
        }

        inOrder(root->left);
        nodes.push_back(root);
        inOrder(root->right);
    }

    TreeLinkNode* GetNext(TreeLinkNode* pNode) {
        TreeLinkNode* root =pNode;

        while(root->next)
        {
            root=root->next;
        }

        inOrder(root);
        int n=nodes.size();
        for(int i=0;i<n-1;i++)
        {
            TreeLinkNode* cur=nodes[i];
            if(pNode==cur)
            {
                return nodes[i+1];
            }
        }
        return nullptr;
    }
};

#剑指offer第八题#
剑指offer刷题 文章被收录于专栏

坚持!努力!学习

全部评论

相关推荐

点赞 评论 收藏
分享
勤劳的鲸鱼在okr拆解:没有别的选择就去吧,有实习和没实习找工作是天上地下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务