每日一题 2019 - 04 - 20
题目:
Given an integer n, generate all structurally unique BST’s (binary search trees) that store values 1 … n.
Example:
1 | Input: 3 |
解法:
这个题让找出从 1
到 n
共 n
个数字的可以组成的二叉搜索树的数目;
刚开始看到这个题整体是比较懵的,因为之前一直在做数组跟链表的类型题,突然就多了这种二叉树的题,还是有点难受的,言归正传;
这个题主要是要使用分割的思想,一个大小为 n
的二叉树,可以分为左边有 x
大小的左子树,和右边 n-x-1
大小的右子树,然后在左右子树里面继续按照上面思路进行划分,同时还需要变换不同的根节点,因为要使用二叉搜索树,所以一定要保证左子节点小于根节点,右子节点大于根节点;
代码:
1 | /** |