【每日一题】894. 所有可能的真二叉树-2024.4.2

题目:

894. 所有可能的真二叉树

给你一个整数 n ,请你找出所有可能含 n 个节点的 真二叉树 ,并以列表形式返回。答案中每棵树的每个节点都必须符合 Node.val == 0

答案的每个元素都是一棵真二叉树的根节点。你可以按 任意顺序 返回最终的真二叉树列表**。**

真二叉树 是一类二叉树,树中每个节点恰好有 02 个子节点。

示例 1:

复制代码
输入:n = 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]]

示例 2:

复制代码
输入:n = 3
输出:[[0,0,0]]

提示:

  • 1 <= n <= 20

解答:

代码:

复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public List<TreeNode> allPossibleFBT(int n) {
        if(n%2==0){
            return new ArrayList<TreeNode>();
        }
        List<TreeNode>[] dp=new List[n+1];
        for(int i=0;i<=n;i++){
            dp[i]=new ArrayList<TreeNode>();
        }
        dp[1].add(new TreeNode(0));
        for(int i=3;i<=n;i+=2){
            for(int j=1;j<i;j+=2){
                for(TreeNode leftSubtree:dp[j]){
                    for(TreeNode rightSubtrees:dp[i-1-j]){
                        TreeNode root=new TreeNode(0,leftSubtree,rightSubtrees);
                        dp[i].add(root);
                    }
                }
            }
        }
        return dp[n];
    }
}

结果:

相关推荐
五仁烧饼22 分钟前
Unity Addressables 资源依赖治理:规则约束、自动修复与全链路防护
java·unity·游戏引擎
spider_xcxc23 分钟前
Jenkins 遇见 Argo CD:构建可靠 GitOps 流水线的实战指南
java·开发语言·servlet
AI人工智能+电脑小能手28 分钟前
【大白话说Java面试题 第214题】【10_网络协议篇】第5题:说一下 TCP 协议的三次握手和四次挥手
java·网络协议·tcp·三次握手·四次挥手
我叫唧唧波29 分钟前
【Java】Java 基础系统学习笔记
java·笔记·学习
好好沉淀43 分钟前
Spring @Validated和Validation注解 校验机制完全指南
java·数据库·后端
灵枢时代1 小时前
小程序在生鲜配送行业,如何设计夜间预约和次日达的订单处理流程?
数据结构·人工智能·小程序
June`1 小时前
常量内存和只读缓存
c++·人工智能·算法·cuda
唐青枫1 小时前
Java RxJava 实战指南:从 Observable、Flowable 到线程切换和背压处理
java
一条大祥脚1 小时前
ABC468 扫描线|贡献法|二阶差分|线段树优化DP
数据结构·算法
happyprince1 小时前
篇2-bitsandbytes-具体观-算法与实现剖析
算法