(复习)[LeetCode]Unique Binary Search Trees II
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Question
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.
本题难度Medium。
【复杂度】
时间 O(N) 空间 O(N)
【思路】
根据数的范围start,end
,选取某个数i
作为分割点,然后分别得到左子树和右子树的范围 start,i-1
i+1, end
,然后分别求得两个子树的集合,然后进行组合从而得到树的集合trees
。
【要点】
先求出两边子树的集合,再组合得到树的集合。
【注意】
1. 第20行trees.add(null);
不能少,否则对于第28与29行来说,如果trees
里面什么都没有,是不能进行循环的!(null也是一个元素)
2. 如果输入n=0
,是要单独对待的(12-13行),系统要求此时结果里面什么都不能有,包括null!
【代码】
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |