• 二叉树的下一个结点


    一共有一下情况:

    1、只要有右子树,就找右子树中最左的节点;

    2、没有右子树,就像上遍历,找第一个当前节点是父节点的左孩子的节点

    3、退到了根节点,还没找到,就返回NULL

     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==nullptr) return pNode;
    17         if(pNode->right){
    18             pNode = pNode->right;
    19             while(pNode->left){
    20                 pNode = pNode->left;
    21             }
    22             return pNode;
    23         }
    24         while(pNode->next){
    25             if(pNode->next->left == pNode) return pNode->next;
    26             pNode = pNode->next;
    27         }
    28         return NULL;
    29     }
    30 };
  • 相关阅读:
    代码1
    js中级第13天
    dom 浏览器模型
    js中级第12天
    js中级第11天
    js中级第十天
    js中级第九天
    js中级第8天
    js中级第六天
    js中级第七天
  • 原文地址:https://www.cnblogs.com/pacino12134/p/11242892.html
Copyright © 2020-2023  润新知