LeetCode Online Judge 题目C# 练习 - Unique Binary Search Trees II
2012-10-22 23:56
656 查看
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.
代码分析:
递归,分别求出左边,右边的subtree root,在二重循环把他们加到root上。
For example,
Given n = 3, your program should return all 5 unique BST's shown below.
public static List<BSTNode> UniqueBinarySearchTreeII(int n) { return UniqueBinarySearchTreeIIHelper(1, n); } public static List<BSTNode> UniqueBinarySearchTreeIIHelper(int start, int end) { List<BSTNode> res = new List<BSTNode>(); if(start > end) { res.Add(null); return res; } List<BSTNode> leftChild, rightChild; for(int i=start; i<=end; i++) { leftChild = UniqueBinarySearchTreeIIHelper(start,i-1); rightChild = UniqueBinarySearchTreeIIHelper(i+1,end); foreach (var litem in leftChild) { foreach (var ritem in rightChild) { BSTNode root = new BSTNode(i); root.Left = litem; root.Right = ritem; res.Add(root); } } } return res; }
代码分析:
递归,分别求出左边,右边的subtree root,在二重循环把他们加到root上。
相关文章推荐
- LeetCode Online Judge 题目C# 练习 - Unique Binary Search Trees
- LeetCode Online Judge 题目C# 练习 - Binary Tree Level Order Traversal II
- LeetCode Online Judge 题目C# 练习 - Search Insert Position
- LeetCode Online Judge 题目C# 练习 - Binary Tree Inorder Traversal
- [leetcode] 95.Unique Binary Search Trees II
- LeetCode | Unique Binary Search Trees II(构建二叉搜索树)
- leetcode Unique Binary Search Trees II java
- [leetcode 95] Unique Binary Search Trees II
- [leetcode] Unique Binary Search Trees II
- 【LeetCode】Unique Binary Search Trees II
- [LeetCode] 95. Unique Binary Search Trees II & I
- LeetCode Online Judge 题目C# 练习 - Merge k Sorted Lists
- LeetCode Online Judge 题目C# 练习 - Minimum Window Substring
- leetCode 95.Unique Binary Search Trees II (唯一二叉搜索树) 解题思路和方法
- leetcode——95——Unique Binary Search Trees II
- LeetCode 95:Unique Binary Search Trees II
- leetcode95 Unique Binary Search Trees II
- [leetcode]Unique Binary Search Trees II
- Unique Binary Search Trees II [leetcode]
- 【leetcode】Unique Binary Search Trees I & II