怎么用电脑做网站虚拟空间,3g 手机网站建设,搜索关键词排名优化,成都建设网站报价1. 题目
给定一个整数 n#xff0c;生成所有由 1 … n 为节点所组成的二叉搜索树。
示例:
输入: 3
输出:
[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]
]
解释:
以上的输出对应以下 5 种不同结构的二叉搜索树#xff1a;1 3 3 …1. 题目
给定一个整数 n生成所有由 1 … n 为节点所组成的二叉搜索树。
示例:
输入: 3
输出:
[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]
]
解释:
以上的输出对应以下 5 种不同结构的二叉搜索树1 3 3 2 1\ / / / \ \3 2 1 1 3 2/ / \ \2 1 2 3来源力扣LeetCode 链接https://leetcode-cn.com/problems/unique-binary-search-trees-ii 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
类似题目 程序员面试金典 - 面试题 04.09. 二叉搜索树序列双端队列回溯** LeetCode 96. 不同的二叉搜索树DP
遍历数据 [1,n] 的每个点分成两半递归生成
class Solution {
public:vectorTreeNode* generateTrees(int n) {if(n 0)return {};return generateTrees(1,n);}vectorTreeNode* generateTrees(int start, int end){vectorTreeNode* ans;if(start end){ans.push_back(NULL);return ans;}vectorTreeNode* subLeft, subRight;TreeNode *node;for(int i start; i end; i){subLeft generateTrees(start,i-1);subRight generateTrees(i1,end);for(TreeNode* l : subLeft)for(TreeNode* r : subRight){node new TreeNode(i);node-left l;node-right r;ans.push_back(node);}}return ans;}
};36 ms 17.7 MB