leetcode: 95. Unique Binary Search Trees II [✗]
2017-11-22 10:23
435 查看
Problem
# Given an integer 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
AC
class TreeNode(): def __init__(self, x): self.val = x self.left = None self.right = None class Solution(): def generateTrees(self, n): return self.buildTree(0, n) def buildTree(self, n1, n2): if n1==n2: return [None] if n1+1 == n2: node = TreeNode(n1+1) node.left = None node.right = None return [node] else: results = [] for x in range(n1, n2): left_list = self.buildTree(n1, x) right_list = self.buildTree(x+1, n2) for left in left_list: for right in right_list: node = TreeNode(x+1) node.left = left node.right = right results.append(node) return results class TreeNode(): def __init__(self, x): self.val = x self.left = None self.right = None class Solution(): def generateTrees(self, n): return self.generateTreesRecu(1, n) def generateTreesRecu(self, low, high): result = [] if low > high: result.append(None) for i in range(low, high + 1): left = self.generateTreesRecu(low, i - 1) right = self.generateTreesRecu(i + 1, high) for j in left: for k in right: cur = TreeNode(i) cur.left = j cur.right = k result.append(cur) return result if __name__ == "__main__": print(Solution().generateTrees(3))
相关文章推荐
- [LeetCode] 95. Unique Binary Search Trees II
- LeetCode-95. Unique Binary Search Trees II
- leetcode 95. Unique Binary Search Trees II(dp)
- leetcode - 95.Unique Binary Search Trees II
- [Leetcode]@python 95. Unique Binary Search Trees II
- [leetcode]95. Unique Binary Search Trees II
- LeetCode 95. Unique Binary Search Trees II
- 95. Unique Binary Search Trees II LeetCode
- Leetcode-95. Unique Binary Search Trees II
- [leetcode] 95. Unique Binary Search Trees II
- LeetCode 95.Unique Binary Search Trees II
- Leetcode 95. Unique Binary Search Trees II
- LeetCode 95. Unique Binary Search Trees II
- [leetcode] 95.Unique Binary Search Trees II
- [LeetCode] 95. Unique Binary Search Trees II
- [leetcode] 95. Unique Binary Search Trees II
- Leetcode 95. Unique Binary Search Trees II 二叉搜索树2 解题报告
- [leetcode] 95. Unique Binary Search Trees II 解题报告
- [LeetCode]95.Unique Binary Search Trees II
- leetcode-java-95. Unique Binary Search Trees II