Unique Binary Search Trees II 构造出所有的二分搜索树
来源:互联网 发布:数据鲜活度 编辑:程序博客网 时间:2024/06/18 08:43
如果对Unique Binary Search Trees 不熟悉的,请先看我之前的post.
在这里,我们不仅要计算出不同的二分树的个数,还需要构造出所有符合要求的二分树。
回忆之前的迭代细节:
count(n) = count (0) + count(n - 1 - 0) + .. + count(i) + count(n - 1 - i) + .. + count(n - 1) * count(0)
在这里就转变成了:
要构造一个节点数为n 的树: 等于先构造它 子树 subTree(1, i - 1 ) 和 subTree(i + 1, n), 这个子树的root = node( i )
代码:
public List<TreeNode> generateTrees(int n) { if (n <= 0) { return new ArrayList<>(); } return doGenerateTrees(1, n); } private List<TreeNode> doGenerateTrees(int begin, int end) { List<TreeNode> store = new ArrayList<>(); if (begin > end) { store.add(null);// attention: must add null return store; } for (int i = begin; i <= end; i++) { List<TreeNode> leftList = doGenerateTrees(begin, i - 1); List<TreeNode> rightLIst = doGenerateTrees(i + 1, end); for (TreeNode leftNode : leftList) { for (TreeNode rightNode : rightLIst) { TreeNode head = new TreeNode(i); head.left = leftNode; head.right = rightNode; store.add(head); } } } return store; }
1 0
- Unique Binary Search Trees II 构造出所有的二分搜索树
- leetcode 95. Unique Binary Search Trees II 递归构造所有可能的搜索二叉树BST + 卡特兰数
- Unique Binary Search Trees 计算二分搜索树的个数
- [LeetCode]Unique Binary Search Trees II生成所有二叉搜索树
- 生成所有可能的二叉排序树 Unique Binary Search Trees II
- Unique Binary Search Trees II 输出二叉树的所有组合@LeetCode
- LeetCode OJ 之 Unique Binary Search Trees II (不同的二叉搜索树 - 二)
- 95. Unique Binary Search Trees II (独一无二的二叉搜索树之二)
- Unique Binary Search Trees II 二叉查找树的路径
- Unique Binary Search Trees II 二叉树的种类
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees (& II)
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- PyBrain-Python的人工神经网络
- Android加速度传感器应用之晃动次数测试(摇一摇)
- 成长如棋,在于谋
- 产品开发中项目与项目管理
- 使用grunt搭建工程
- Unique Binary Search Trees II 构造出所有的二分搜索树
- CentOS 7 下编译安装mplayer-1.2.0
- 简单自定义view
- 【Android内存泄漏】关于内存泄漏(三)
- View的measure过程
- 使用jclouds访问openstack的nova
- tomcatSupplement(1)tomcat启动脚本分析(以Windows平台为例)
- [Android] Fragment 完全解析
- 利用composer快速建立laravel开发项目