二叉搜索树

LeetCode 95. 不同的二叉搜索树 II

北战南征 提交于 2019-11-25 21:40:21
LeetCode 95. 不同的二叉搜索树 II 题目 给定一个整数 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 分析 递归生成即可。 C++代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public : vector < TreeNode * > generateTrees ( int n ) { if ( n == 0 ) return { } ; return * generateTreesDFS ( 1 , n ) ; } vector < TreeNode * > * generateTreesDFS