## LeetCode

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

Recover the tree without changing its structure.

**Note:**

A solution using O(

*n*) space is pretty straight forward. Could you devise a constant space solution?

confused what

`"{1,#,2,3}"`

means? > read more on how binary tree is serialized on OJ.
Solution:

Use an extra class called Pre_first_second, which is used to record the previous node of current root node, first wrong node and second wrong node, preoder-traverse the entire tree find the invalid two nodes and store hem into pre-first_sercond structure.