894.所有可能的真二叉树
链接:894.所有可能的真二叉树
难度:Medium
标签:树、递归、记忆化搜索、动态规划、二叉树
简介:给你一个整数 n ,请你找出所有可能含 n 个节点的 真二叉树 ,并以列表形式返回。
题解 1 - python
- 编辑时间:2024-04-02
 - 执行用时:63ms
 - 内存消耗:20.82MB
 - 编程语言:python
 - 解法介绍:dfs。
 
class Solution:
    @cache
    def allPossibleFBT(self, n: int) -> List[Optional[TreeNode]]:
        return [
            TreeNode(0, lnode, rnode) 
            for cnt in range(1, n - 1)
            for lnode in self.allPossibleFBT(cnt) 
            for rnode in self.allPossibleFBT(n - 1 - cnt)
        ] if n != 1 else [TreeNode(0)]