题解 | #二叉树的下一个结点#

二叉树的下一个结点

http://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e

/*
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->right) {
      pNode = pNode->right;
      while (pNode->left) pNode = pNode->left;
      return pNode;
    }
    
    while (pNode->next && pNode->next->right == pNode)
       pNode = pNode->next;
    
    return pNode->next;
  }
};
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务