给定一个整数 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
 1 class Solution {
 2 public:
 3     vector<TreeNode *> generateTrees(int n) {
 4         if (n == 0) return {};
 5         return *generateTreesDFS(1, n);
 6     }
 7     vector<TreeNode*> *generateTreesDFS(int start, int end) {
 8         vector<TreeNode*> *subTree = new vector<TreeNode*>();
 9         if (start > end) subTree->push_back(NULL);
10         else {
11             for (int i = start; i <= end; ++i) {
12                 vector<TreeNode*> *leftSubTree = generateTreesDFS(start, i - 1);
13                 vector<TreeNode*> *rightSubTree = generateTreesDFS(i + 1, end);
14                 for (int j = 0; j < leftSubTree->size(); ++j) {
15                     for (int k = 0; k < rightSubTree->size(); ++k) {
16                         TreeNode *node = new TreeNode(i);
17                         node->left = (*leftSubTree)[j];
18                         node->right = (*rightSubTree)[k];
19                         subTree->push_back(node);
20                     }
21                 }
22             }
23         }
24         return subTree;
25     }
26 };

转载于:https://www.cnblogs.com/zzw1024/p/10817005.html

力扣算法题—095不同的二叉搜索树【二叉树】相关推荐

  1. 刷题记录8---验证二叉搜索树+二叉树的层序遍历+从前序与中序遍历序列构造二叉树+二叉树展开为链表+二叉树的最近公共祖先

    前言 所有题目均来自力扣题库中的hot 100,之所以要记录在这里,只是方便后续复习 98.验证二叉搜索树 题目: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树. 有效 二叉搜 ...

  2. 力扣算法题—045跳跃游戏二

    1 #include "000库函数.h" 2 3 4 //考虑当前最远能到什么地方,例如2, 3, 1, 1, 4, 5 //首先只考虑a[0] = 2,即最远可以到a[2],然 ...

  3. leetcode算法题--有序链表转换二叉搜索树★

    原题链接:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-tree/ 1.二分法+递归 TreeNode* ...

  4. 程序员面试需要刷力扣算法题吗

    这里写目录标题 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一些特征 1.2. 为什么要考查算法 1.3. 目前面试主要考查 3 类 1. 程序员面试需要刷力扣算法题吗 1.1. 算法题的一 ...

  5. LeetCode -- 力扣算法题解题心得 -- (个人笔记记录)持续更新~~

    一.前言 正式开启数据结构+算法研究的历程,准备好一年后的面试.下面的解法不一定是最优解,只求能力提升,会定期更新~~ 二.目录 1 2 19 20 21 24 35 42 83 86 94 96 1 ...

  6. 【算法】有序链表转换二叉搜索树和从中序与后序遍历序列构造二叉树Java解答参考

    三道算法题 1.有序链表转换二叉搜索树 Java代码参考 2.从中序与后序遍历序列构造二叉树 Java代码参考 3.移除元素 Java代码参考 1.有序链表转换二叉搜索树 给定一个单链表,其中的元素按 ...

  7. 20200721:每日一题之不同的二叉搜索树 II(leetcode95)

    不同的二叉搜索树 II 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 很基本的思路就是递归,没太多其他想法,直接根据二叉搜索树的性质进行递归即可. 代码实现 class Solution ...

  8. 算法导论笔记:12二叉搜索树

    1:概念 二叉搜索树也叫二叉排序树,它支持的操作有:SEARCH, MINIMUM, MAXIMUM, PREDECESSOR, SUCCESSOR, INSERT, DELETE.所以,一颗二叉搜索 ...

  9. 动态规划最优二叉搜索树C语言,算法 – 动态规划:最优二叉搜索树

    好吧,我希望有人可以向我解释一下.我正在攻读决赛,我无法解决问题. 问题是动态编程;构造最优二叉搜索树(OBST).我理解一般的动态编程和特别是这个问题的概念,但我不明白这个问题的递归形式. 我得到的 ...

最新文章

  1. leangoo领歌看板工具新增任务到期提醒功能
  2. python进行linux编程,Python之函数进阶
  3. Docker通过Cgroup 资源配置
  4. 17款开源论坛系统/Forum Software(转载)
  5. TC的文件拷贝/移动
  6. python3安装包是说解压数据出错怎么办_无法修复“zipimport.zipimporter错误:无法解压缩数据;键入python3.6时zlib不可用获取pip.py...
  7. android asmack调用MultiUserChat.getHostedRooms方法出现空指针的异常解决方案
  8. ssr机场_史丹索普SSR草莓绑苗工作两周
  9. Python系统命令– os.system(),subprocess.call()
  10. MySQL 主键相关操作
  11. sklearn常用聚类算法模型【KMeans、DBSCAN】实践
  12. 《AIX 5L 系统管理技术》学习笔记之第七章设备管理
  13. 【BZOJ1057】[ZJOI2007] 棋盘制作(单调栈的运用)
  14. 尚学堂马士兵Oracle学习笔记之一:基本select语句
  15. 蔡学镛:编译、反编译、反反编译(转)
  16. 数学建模-分类模型(基于logistic回归)
  17. Fatal signal 11问题的解决方法
  18. C语言指针强制类型转换
  19. 教您用几何画板画相切的圆
  20. MySQL--查询操作

热门文章

  1. unity天空盒渐变_Unity 制作天空盒
  2. idea导入项目无法解析java
  3. myeclipse报错:The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path
  4. 【转】winIO的解释与使用
  5. VS启动项目时一个奇葩问题
  6. 大结局:GitHub正式归于微软旗下,新CEO下周一上任“三把火”
  7. AI手机会怎么样?那不得看高通骁龙的AI能怎样
  8. 照片有灵异鬼影?伯克利 x 陈启峰培育高能FCN“除灵师” | CVPR论文
  9. 联想高校AI精英挑战赛争霸浙江大学,“管道医生”项目晋级赛摘得桂冠
  10. 尴尬……无人车美国赌城上路不到一小时就撞了