[LeetCode] Populating Next Right Pointers in 각 노드 깊이 검색

3548 단어 LeetCode
Given a binary tree
    struct TreeLinkNode {

      TreeLinkNode *left;

      TreeLinkNode *right;

      TreeLinkNode *next;

    }


 
Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to  NULL .
Initially, all next pointers are set to  NULL .
Note:
  • You may only use constant extra space.
  • You may assume that it is a perfect binary tree (ie, all leaves are at the same level, and every parent has two children).

  •  
    For example,Given the following perfect binary tree,
             1
    
           /  \
    
          2    3
    
         / \  / \
    
        4  5  6  7
    
    

     
    After calling your function, the tree should look like:
             1 -> NULL
    
           /  \
    
          2 -> 3 -> NULL
    
         / \  / \
    
        4->5->6->7 -> NULL
    
    

     
     
    Hide Tags
     
    Tree   Depth-first Search
     
     
    이것은 심도 있는 검색 문제이며, 다른 방법을 사용할 수도 있다.
     
    #include <iostream>
    
    using namespace std;
    
    
    
    /**
    
     * 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||root->left==NULL)  return;
    
            connect(root->left);
    
            help_fun(root->left,root->right);
    
            connect(root->right);
    
        }
    
        void help_fun(TreeLinkNode* lft,TreeLinkNode *rgt)
    
        {
    
            if(lft==NULL)   return ;
    
            lft->next = rgt;
    
            rgt->next = NULL;
    
            help_fun(lft->right,rgt->left);
    
        }
    
    };
    
    
    
    int main()
    
    {
    
    
    
        return 0;
    
    }

     

    좋은 웹페이지 즐겨찾기