zoukankan      html  css  js  c++  java
  • 19.3.2 [LeetCode 99] Recover Binary Search Tree

    Two elements of a binary search tree (BST) are swapped by mistake.

    Recover the tree without changing its structure.

    Example 1:

    Input: [1,3,null,null,2]
    
       1
      /
     3
      
       2
    
    Output: [3,1,null,null,2]
    
       3
      /
     1
      
       2
    

    Example 2:

    Input: [3,1,4,null,null,2]
    
      3
     / 
    1   4
       /
      2
    
    Output: [2,1,4,null,null,3]
    
      2
     / 
    1   4
       /
      3
    

    Follow up:

    • A solution using O(n) space is pretty straight forward.
    • Could you devise a constant space solution?

    题意

    给出一棵标准BST树中两个结点互换后的树,要求互换前的BST树

    题解

     1 class Solution {
     2 public:
     3     TreeNode*big = NULL, *small = NULL, *tmp;
     4     TreeNode*last=NULL;
     5     void search(TreeNode*root) {
     6         if (big&&small||root==NULL)return;
     7         if (root->left)
     8             search(root->left);
     9         if (last&&root->val < last->val) {
    10             if (big == NULL) {
    11                 big = last;
    12                 tmp = root;
    13             }
    14             else if (small == NULL) {
    15                 small = root;
    16                 return;
    17             }
    18         }
    19         last = root;
    20         if (root->right)
    21             search(root->right);
    22     }
    23     void recoverTree(TreeNode* root) {
    24         search(root);
    25         if (!small)
    26             small = tmp;
    27         swap(big->val, small->val);
    28         return;
    29     }
    30 };
    View Code

    这题应该可以直接换值吧?如果不能的话就需要再改改了

  • 相关阅读:
    ztree
    SAMEORIGIN
    Unity shader学习之折射
    Unity shader学习之反射
    Unity shader学习之标准的Unity shader
    Unity shader学习之Alpha Test的阴影
    Unity shader学习之阴影,衰减统一处理
    Unity shader学习之阴影
    Unity shader学习之Forward Rendering Path
    AsyncClientUtils
  • 原文地址:https://www.cnblogs.com/yalphait/p/10460729.html
Copyright © 2011-2022 走看看