力扣——所有可能的满二叉树
满二叉树是一类二叉树,其中每个结点恰好有 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
力扣——所有可能的满二叉树相关推荐
- 力扣解法汇总606-根据二叉树创建字符串
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms https://g ...
- 【力扣每日一题】二叉树的最小深度
原题链接 题目描述: 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null, ...
- 力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树
文章目录 738. 单调递增的数字 思路 难点:遍历顺序 难点:设置flag 714. 买卖股票的最佳时机含手续费 贪心思路 难点 968. 监控二叉树 思路 难点:如何隔两个节点放一个摄像头 738 ...
- 力扣编程题-解法汇总
一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...
- C++学习力扣刷题错题本
在这里对于自己C++学习过程中的问题及模糊知识点做记录,相当于一个错题本的功能. 1.(C++数组)C++中数组不能直接赋值或者比较大小. int a[6] = { 1,2,3,4,5,6 }; in ...
- 【力扣刷题 | 第十二天】
目录 前言: 104. 二叉树的最大深度 - 力扣(LeetCode) 111. 二叉树的最小深度 - 力扣(LeetCode) 前序遍历: 后序遍历: 总结: 前言: 今天还是对树的基础题进行刷题, ...
- 力扣解法汇总1110. 删点成林
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCod ...
- [力扣] 二叉树的层序遍历
[力扣] 二叉树的层序遍历 广度优先算法,遍历每一层的节点 例题: 102. 二叉树的层序遍历 # Definition for a binary tree node. # class TreeNod ...
- 《LeetCode力扣练习》剑指 Offer 28. 对称的二叉树 Java
<LeetCode力扣练习>剑指 Offer 28. 对称的二叉树 Java 一.资源 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的 ...
最新文章
- xml信息管理系统_WPF信息管理系统项目实战教程二:使用XAML实现页面布局
- 微服务限流Sentinel讲解(五)
- 怎么用java实现打字功能_怎么用JAVA编写一个打字游戏
- 交流信号叠加直流偏置_放大器偏置电流Ib需要完整的直流回路
- 微软的SQLHelper类(含完整中文注释)
- 白盒测试 | 用例设计方法之条件覆盖
- Windows 7 IIS HTTP 错误 403.14 - Forbidden
- [手把手教]discuzX2插件制作教程__最菜鸟级别的入门坎 【二】
- 基于JAVA+SpringMVC+Mybatis+MYSQL的递代收系统
- Python 进阶 —— 装饰器函数的使用
- php基础教程 第五章,VFP基础教程 第五章 创建查询和视图
- html字体制作,用@font-face实现网页特殊字符(制作自定义字体)
- word文档docx解密方法,word文档docx不能复制打印怎么办?
- r去掉向量中的空字符串 在R里如何去掉字符串矩阵中的空字符串 r r 识别字符串中的双引号 识别字符串中的双引号 str_detect
- C和C++的区别点汇总
- Hbuildx工具启动uniapp项目
- jquery 立体走马灯_jquery实现页面百叶窗走马灯式翻滚显示效果的方法
- windows10 宽带或者无线连接校园网都出错,如何解决
- USB--平台搭建--3--Visual studio 2005 + ddkWizard
- linux CMA 内存分配器(Contiguous Memory Allocator)