满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。

返回包含 N 个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。

答案中每个树的每个结点都必须有 node.val=0

你可以按任何顺序返回树的最终列表。

示例:

输入:7
输出:[[0,0,0,null,null,0,0,null,null,0,0],[0,0,0,null,null,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,null,null,null,null,0,0],[0,0,0,0,0,null,null,0,0]]
解释:

提示:

  • 1 <= N <= 20
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {Map<Integer, List<TreeNode>> memo = new HashMap();public List<TreeNode> allPossibleFBT(int N) {if (!memo.containsKey(N)) {List<TreeNode> ans = new LinkedList();if (N == 1) {ans.add(new TreeNode(0));} else if (N % 2 == 1) {for (int x = 0; x < N; ++x) {int y = N - 1 - x;for (TreeNode left: allPossibleFBT(x))for (TreeNode right: allPossibleFBT(y)) {TreeNode bns = new TreeNode(0);bns.left = left;bns.right = right;ans.add(bns);}}}memo.put(N, ans);}return memo.get(N);}
}

转载于:https://www.cnblogs.com/JAYPARK/p/10485819.html

力扣——所有可能的满二叉树相关推荐

  1. ​力扣解法汇总606-根据二叉树创建字符串

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms https://g ...

  2. 【力扣每日一题】二叉树的最小深度

    原题链接 题目描述: 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null, ...

  3. 力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树

    文章目录 738. 单调递增的数字 思路 难点:遍历顺序 难点:设置flag 714. 买卖股票的最佳时机含手续费 贪心思路 难点 968. 监控二叉树 思路 难点:如何隔两个节点放一个摄像头 738 ...

  4. 力扣编程题-解法汇总

    一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...

  5. C++学习力扣刷题错题本

    在这里对于自己C++学习过程中的问题及模糊知识点做记录,相当于一个错题本的功能. 1.(C++数组)C++中数组不能直接赋值或者比较大小. int a[6] = { 1,2,3,4,5,6 }; in ...

  6. 【力扣刷题 | 第十二天】

    目录 前言: 104. 二叉树的最大深度 - 力扣(LeetCode) 111. 二叉树的最小深度 - 力扣(LeetCode) 前序遍历: 后序遍历: 总结: 前言: 今天还是对树的基础题进行刷题, ...

  7. ​力扣解法汇总1110. 删点成林

    目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCod ...

  8. [力扣] 二叉树的层序遍历

    [力扣] 二叉树的层序遍历 广度优先算法,遍历每一层的节点 例题: 102. 二叉树的层序遍历 # Definition for a binary tree node. # class TreeNod ...

  9. 《LeetCode力扣练习》剑指 Offer 28. 对称的二叉树 Java

    <LeetCode力扣练习>剑指 Offer 28. 对称的二叉树 Java 一.资源 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的 ...

最新文章

  1. xml信息管理系统_WPF信息管理系统项目实战教程二:使用XAML实现页面布局
  2. 微服务限流Sentinel讲解(五)
  3. 怎么用java实现打字功能_怎么用JAVA编写一个打字游戏
  4. 交流信号叠加直流偏置_放大器偏置电流Ib需要完整的直流回路
  5. 微软的SQLHelper类(含完整中文注释)
  6. 白盒测试 | 用例设计方法之条件覆盖
  7. Windows 7 IIS HTTP 错误 403.14 - Forbidden
  8. [手把手教]discuzX2插件制作教程__最菜鸟级别的入门坎 【二】
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的递代收系统
  10. Python 进阶 —— 装饰器函数的使用
  11. php基础教程 第五章,VFP基础教程 第五章 创建查询和视图
  12. html字体制作,用@font-face实现网页特殊字符(制作自定义字体)
  13. word文档docx解密方法,word文档docx不能复制打印怎么办?
  14. r去掉向量中的空字符串 在R里如何去掉字符串矩阵中的空字符串 r r 识别字符串中的双引号 识别字符串中的双引号 str_detect
  15. C和C++的区别点汇总
  16. Hbuildx工具启动uniapp项目
  17. jquery 立体走马灯_jquery实现页面百叶窗走马灯式翻滚显示效果的方法
  18. windows10 宽带或者无线连接校园网都出错,如何解决
  19. USB--平台搭建--3--Visual studio 2005 + ddkWizard
  20. linux CMA 内存分配器(Contiguous Memory Allocator)

热门文章

  1. C语言复杂的学生成绩管理系统,哭诉、拜求C语言学生成绩管理系统
  2. 【多线程】ThreadPoolExecutor类万字源码解析(注解超级详细)
  3. 【 Linux 】单台服务器上并发TCP连接数(转)
  4. python3之SQLAlchemy
  5. Android EditText属性用法
  6. 48. Rotate Image
  7. 重温java中的String,StringBuffer,StringBuilder类
  8. 作为iOS开发者不得不follow的52人
  9. 谷歌升级Android分析应用程序
  10. C++中const——由一个例子想到的