zoukankan      html  css  js  c++  java
  • leetcode[117]Populating Next Right Pointers in Each Node II

    Follow up for problem "Populating Next Right Pointers in Each Node".

    What if the given tree could be any binary tree? Would your previous solution still work?

    Note:

    • You may only use constant extra space.

    For example,
    Given the following binary tree,

             1
           /  
          2    3
         /     
        4   5    7
    

    After calling your function, the tree should look like:

             1 -> NULL
           /  
          2 -> 3 -> NULL
         /     
        4-> 5 -> 7 -> NULL
    /**
     * Definition for binary tree with next pointer.
     * struct TreeLinkNode {
     *  int val;
     *  TreeLinkNode *left, *right, *next;
     *  TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {}
     * };
     */
    
    class Solution {
    public:
        void connect(TreeLinkNode *root) {
            if(root==NULL)return;
            if(root->left)
            {
               if(root->right)root->left->next=root->right;
               else
               {
                   TreeLinkNode *tmp=root->next;
                   while(tmp&&root->left->next==NULL)
                   {
                       if(tmp->left)root->left->next=tmp->left;
                       else if(tmp->right)root->left->next=tmp->right;
                       else tmp=tmp->next;
                   }
               }
            }
            if(root->right)
            {
               TreeLinkNode *tmp=root->next;
               while(tmp&&root->right->next==NULL)
               {
                  if(tmp->left)root->right->next=tmp->left;
                  else if(tmp->right)root->right->next=tmp->right;
                  else tmp=tmp->next;
               }
            }
            connect(root->right);
            connect(root->left);
        }
    };
  • 相关阅读:
    低效代码的危害
    使用datetime来控制timer的问题
    redis for windows
    log4net支持用日期加时间指定文件名
    防止数据丢失的解决方法
    RabbitMQ默认情况下不保证每次都把消息传递
    UnitTest和Developer
    spring+eureka+zuul
    新工具解决消息丢失的bug
    java_if_else__的应用1
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4281293.html
Copyright © 2011-2022 走看看