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

Unique Binary Search Trees II

Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.
For example,
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
confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

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

Merge K Sorted List

Integer to Roman

3 Sum

Letter Combinations of a Phone Number

Swap Nodes in Pairs

Reverse Nodes in k-Group

Remove Element

Implement strStr()

Roman To Integer