## Wednesday, September 11, 2013

## Tuesday, September 10, 2013

### Recover Binary Search Tree

## 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.

### Unique Binary Search Trees II

Given

*n*, generate all structurally unique**BST's**(binary search trees) that store values 1...*n*.
For example,

Given

Given

*n*= 3, your program should return all 5 unique BST's shown below.1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3

Solution : Divide and Conquer

from 1-> n, for each point calculate left side trees and right side trees and then construct them together.

Subscribe to:
Posts (Atom)