• [leetcode-897-Increasing Order Search Tree]


    Given a tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only 1 right child.

    Example 1:
    Input: [5,3,6,2,4,null,8,1,null,null,null,7,9]
    
           5
          / 
        3    6
       /     
      2   4    8
     /        /  
    1        7   9
    
    Output: [1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]
    
     1
      
       2
        
         3
          
           4
            
             5
              
               6
                
                 7
                  
                   8
                    
                     9  

    Note:

    1. The number of nodes in the given tree will be between 1 and 100.
    2. Each node will have a unique integer value from 0 to 1000.

    思路:

    最最朴素的思路。。中序遍历然后保存所有结点,最后重新构建二叉树。。

    十分不优雅。。。

    void inOrder(TreeNode* root,vector<TreeNode*>& t)
    {
        if(root == NULL) return;
        inOrder(root->left, t);
        t.push_back(root);
        inOrder(root->right, t);
    }
    
    TreeNode* increasingBST(TreeNode* root)
    {
       vector<TreeNode*> t;
       inOrder(root,t);
       for(int i = 0; i < t.size(); i++)
       {
           t[i]->left = NULL;
           if(i != t.size() -1){t[i]->right = t[i+1];}
           else{t[i]->right = NULL;}     
       }
       return t[0];
    }

    优雅版本:

    直接操作原来的树。。

    TreeNode* increasingBST(TreeNode* root) {
            if (!root)
                return root;
            if (root->left)
            {
                TreeNode* temp=root->left;
                TreeNode* temp2=root->left->right;
                root->left=NULL;
                temp->right=root;
                root->left=temp2;
                return increasingBST(temp);;
            }
            root->right = increasingBST(root->right);
            return root;
            }
  • 相关阅读:
    OpenStack网卡桥接问题
    Linux DD添加swap分区
    OpenStack KVM嵌套虚拟化的配置
    OpenStack KVM嵌套虚拟化的配置
    received packet with own address as source address
    mysql ERROR 1040 (08004): Too many connections
    openstack以其他tenant用户创建实例
    OpenStack Controller HA (3)
    OpenStack Controller HA (2)
    OpenStack controller HA
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/9758064.html
Copyright © 2020-2023  润新知