Skip to content

Latest commit

 

History

History
107 lines (78 loc) · 1.45 KB

[0099] 恢复二叉搜索树.md

File metadata and controls

107 lines (78 loc) · 1.45 KB
title tags categories author comments updated permalink mathjax top description date
[0099] 恢复二叉搜索树
leetcode
leetcode
张学志
true
false
false
false
...
2019-12-31 16:01:39 -0800

题目描述

二叉搜索树中的两个节点被错误地交换。

请在不改变其结构的情况下,恢复这棵树。

示例 1:

输入: [1,3,null,null,2]

   1
  /
 3
  \
   2

输出: [3,1,null,null,2]

   3
  /
 1
  \
   2

示例 2:

输入: [3,1,4,null,null,2]

  3
 / \
1   4
   /
  2

输出: [2,1,4,null,null,3]

  2
 / \
1   4
   /
  3

进阶:

  • 使用 O(n) 空间复杂度的解法很容易实现。
  • 你能想出一个只使用常数空间的解决方案吗?
Related Topics
  • 深度优先搜索
  • 题目代码

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        void recoverTree(TreeNode* root) {
    
        }
    };

    题目解析

    方法一

    方法二

    方法三