题目:给出了个N,代表一棵二叉树有N个节点,求所能构成的满二叉树。
别人思路:本问题可以考虑用分治递归来解决,现在考虑有个根节点,
它的所有满二叉树组合为allPossibleFBT(N) ,左子树可能有的节点数目为1,2,…,i,…,N-1,
同时右子树可能有的节点数目为N-1-1,N-2-1,…,N-i-1,…,1。
那么我们可以分别得到左右子树的所有满二叉树的组合:allPossibleFBT(i)和allPossibleFBT(N-i-1)。
然后根据根节点和所有左右子树排列组合,就可以输出节点数为N的所有满二叉树组合。

class Solution {public List<TreeNode> allPossibleFBT(int N) {List<TreeNode> list = new ArrayList<TreeNode>() ;if(N == 1){list.add(new TreeNode(0)) ;return list ;}if(N%2==0){return list ;}for(int i=1;i<N;i+=2){for(TreeNode l : allPossibleFBT(i)) {for (TreeNode r : allPossibleFBT(N-i-1)) {TreeNode root = new TreeNode(0) ;root.left = l ;root.right = r ;list.add(root) ;}}}return list ;}
}

参考:https://blog.csdn.net/yeshen4328/article/details/82668887

leetcode894.AllPossibleFullBinaryTrees相关推荐

  1. LeetCode之All Possible Full Binary Trees(Kotlin)

    问题: A full binary tree is a binary tree where each node has exactly 0 or 2 children. Return a list o ...

  2. leetcode_894. All Possible Full Binary Trees

    https://leetcode.com/problems/all-possible-full-binary-trees/ 给定节点个数,求所有可能二叉树,该二叉树所有节点要么有0个子节点要么有两个子 ...

  3. LeetCode 894. 所有可能的满二叉树(递归)

    1. 题目 满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点. 返回包含 N (1 <= N <= 20)个结点的所有可能满二叉树的列表. 答案的每个元素都是一个可能树的根结 ...

  4. 清华大学尹成 怎么样

    清华大学尹成 怎么样 编程能力极强,算法能力极强,业界的最强算法王者 =============================================================  清华 ...

  5. 递归和回溯相关面试算法总结

    文章目录 递归面试算法总结 1. LeetCode 剑指 Offer 07 : 重建二叉树 2. LeetCode 687 : 最长同值路径 3. LeetCode 面试题 08.06 : 汉诺塔问题 ...

  6. LeetCode中的那些题

    目录 1. 两数之和 2. 两数相加 3. 无重复字符的最长子串 *******4.寻找两个有序数组的中位数(官方解答) : 5.最长回文子串(官方解答) 15. 三数之和 16. 最接近的三数之和 ...

  7. leetcode 转载

    转载: https://blog.csdn.net/love905661433/article/details/84980135 LeetCode 1- 100 1. 两数之和 : https://b ...

  8. 动态规划(持续更新、整理)

    动态规划 记忆化搜索 不同路径:leetcode-62 分割回文串:leetcode-131 单词拆分II:leetcode-140 戳气球:leetcode-312 零钱兑换:leetcode-32 ...

最新文章

  1. mysql数据没有真正提交,转MySQL 批量提交优化
  2. Win7下JDK环境变量设置批处理(转)
  3. Android layout 优化:使用include和merge 标签
  4. 开源 数据仓库_使用这些开源工具进行数据仓库
  5. 如何创建_如何创建自己的微信圈子?圈子创建运营指南
  6. Java数据库篇3——SQL
  7. 代写php代码作业,代写phpmyadmin留学生作业、代做SQL语言作业、SQL程序设计作业调试、代做PHP script作业...
  8. 2019.01.13 bzoj4137: [FJOI2015]火星商店问题(线段树分治+可持久化01trie)
  9. redis 多实例启动
  10. 趣味程序之打印字符图案系列
  11. 会计软件属于什么计算机软件,会计核算软件属于什么_会计从业资格先学什么...
  12. 自研DCI网络路由交换协议DCIP-白牌交换机时代的企业网络
  13. 《东周列国志》第六十回 智武子分军肆敌 偪阳城三将斗力
  14. 电脑问题处理篇5:解决电脑突然蓝屏问题
  15. python万年历节气_万年历API接口_免费数据接口 - 极速数据
  16. 基于eBox旋转编码器
  17. Chrome小游戏《Boxel Rebound》
  18. 培训机构短期培训半年后,他获得了 12K的月薪,却担心被解雇
  19. vue 中哪些操作自动触发更新视图
  20. JAVA JAV,javjava

热门文章

  1. 如何使用alt键+数字键盘上的数字键打出特殊符号
  2. Smali 语法文档
  3. 【初学者必读】—PowerShell 基础详解及设置
  4. c语言动态的申请矩阵存储空间,C语言中二维数组如何申请动态分配内存
  5. Java反射修改返回值_java反射调用时如果返回值是整型数组怎么处理?
  6. access mysql 操作方法_操作ACCESS数据库注意事项
  7. 知乎高赞!python能做这么多自动化,可开发效率真的有Java高?
  8. flex应用中如何关闭浏览器
  9. python第三方库——requests
  10. 查询手机号段对应地区编码_Elasticsearch实战 | 如何从数千万手机号中识别出情侣号?...