99.Recover-Binary-Search-Tree

99. Recover Binary Search Tree

题目地址

https://leetcode.com/problems/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?

代码

Approach 1: Sort an Almost Sorted Array Where Two Elements Are Swapped

Approach #2 Iterative Inorder Traversal

Complexity Analysis

  • Time complexity : O(1) in the best case, and O(N) in the worst case when one of the swapped nodes is a rightmost leaf.

  • Space complexity : up to O(H) to keep the stack where H is a tree height.

Approach #3 Recursive Inorder Traversal

Approach #4 Morris Inorder Traversal

Last updated

Was this helpful?