二叉树的下一个结点

来源:互联网 发布:mac默认输入法 编辑:程序博客网 时间:2024/04/29 04:24

题目描述

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
using namespace std;/*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:    TreeLinkNode* GetNext(TreeLinkNode* pNode)    {        if(pNode==NULL)            return NULL;        if(pNode->right!=NULL)        {            TreeLinkNode* node=pNode->right;            while(node->left!=NULL)                node=node->left;            return node;        }        else        {            while(pNode->next!=NULL)            {                TreeLinkNode* n=pNode->next;                if(pNode==pNode->next->left)                    return pNode->next;                else                {                    pNode=pNode->next;                }            }            return NULL;        }           }};

0 0
原创粉丝点击