• LeetCode--Populating Next Right Pointers in Each Node II


    同上题:

    但是这题需要考虑好对当前节点的left和right的next指针如何设置。

     1 /**
     2  * Definition for binary tree with next pointer.
     3  * struct TreeLinkNode {
     4  *  int val;
     5  *  TreeLinkNode *left, *right, *next;
     6  *  TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {}
     7  * };
     8  */
     9 class Solution {
    10 public:
    11     void connect(TreeLinkNode *root) {
    12         if(root == NULL){
    13             return;
    14         }
    15         TreeLinkNode *leftNext = NULL;
    16         TreeLinkNode *rightNext = NULL;
    17         TreeLinkNode *node = NULL;
    18         if(root->left){
    19             leftNext = root->right;
    20             node = root->next;
    21             while(!leftNext && node){
    22                 if(node->left){
    23                     leftNext = node->left;
    24                     break;
    25                 }
    26                 if(node->right){
    27                     leftNext = node->right;
    28                     break;
    29                 }
    30                 node = node->next;
    31             }
    32             root->left->next = leftNext;
    33         }
    34         if(root->right){
    35             rightNext = NULL;
    36             node = root->next;
    37             while(!rightNext && node){
    38                 if(node->left){
    39                     rightNext = node->left;
    40                     break;
    41                 }
    42                 if(node->right){
    43                     rightNext = node->right;
    44                     break;
    45                 }
    46                 node = node->next;
    47             }
    48             root->right->next = rightNext;
    49         }
    50         connect(root->right);
    51         connect(root->left);
    52     }
    53 };

    root->left和root->right顺序不能变。

  • 相关阅读:
    ES6常用语法
    nodejs中exports与module.exports的区别
    CSS animation动画
    CSS user-select文本是否可复制
    VUE 滚动插件(better-scroll)
    VUE 父组件与子组件交互
    CSS div内文字显示两行,超出部分省略号显示
    linux下使用tar命令
    linux fdisk命令使用
    关于SUID、SGID、Sticky
  • 原文地址:https://www.cnblogs.com/cane/p/3930303.html
Copyright © 2020-2023  润新知