zoukankan      html  css  js  c++  java
  • 面试题58 二叉树的下一个结点

    题目描述

    给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
     1 /*
     2 struct TreeLinkNode {
     3     int val;
     4     struct TreeLinkNode *left;
     5     struct TreeLinkNode *right;
     6     struct TreeLinkNode *next;
     7     TreeLinkNode(int x) :val(x), left(NULL), right(NULL), next(NULL) {
     8         
     9     }
    10 };
    11 */
    12 class Solution {
    13 public:
    14     TreeLinkNode* GetNext(TreeLinkNode* pNode)
    15     {
    16         if(pNode==NULL)
    17             return NULL;
    18         if(pNode->right!=NULL)
    19         {
    20             pNode=pNode->right;
    21             while(pNode->left!=NULL)
    22                 pNode=pNode->left;
    23             return pNode;
    24         }  
    25         while(pNode->next!=NULL)
    26         {
    27             TreeLinkNode *proot=pNode->next;
    28             if(proot->left==pNode)
    29                 return proot;
    30             pNode=pNode->next;
    31         }
    32         return NULL;
    33     }
    34 };
  • 相关阅读:
    Vue3.0实战项目
    Vue 笔试题(做对九题即可成为前端懂王)
    CSS 响应式布局---Grid 布局
    CSS快速提升技巧(一)
    前端骨架屏
    Python学习29
    Python学习28
    Python学习27
    Python学习26
    Python学习25
  • 原文地址:https://www.cnblogs.com/wanderingzj/p/5375233.html
Copyright © 2011-2022 走看看