zoukankan      html  css  js  c++  java
  • leetcode

    Given a binary tree, flatten it to a linked list in-place.

    For example,
    Given

             1
            / 
           2   5
          /    
         3   4   6
    

    The flattened tree should look like:
       1
        
         2
          
           3
            
             4
              
               5
                
                 6
    

    click to show hints.

    Hints:

    If you notice carefully in the flattened tree, each node's right child points to the next node of a pre-order traversal.

    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    struct TreeNode
    {
    	int val;
    	TreeNode *left;
    	TreeNode *right;
    	TreeNode(int x) : val(x), left(NULL), right(NULL) {}
    };
    class Solution {
    public:
        void flatten(TreeNode *root) {
    		if(root == NULL) return;
    		while(root != NULL)
    		{
    			if(root->left != NULL)
    			{
    				TreeNode *p = root->left;
    				while(p->right != NULL)
    				{
    					p = p->right;
    				}
    				p->right = root->right;
    				root->right = root->left;
    				root->left = NULL;
    			}
    			root = root->right;
    		}
        }
    };


  • 相关阅读:
    面试问题记录
    面试问题记录
    面试问题记录
    JavaScript => ?
    Jsr303数据校验
    在浏览器上开发GO和Vue!(基于code-server)
    IdentityServer4 4.0.0
    9/13-9/18
    9/6-9/10
    8/30-9/3
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4208499.html
Copyright © 2011-2022 走看看