当前位置: 首页 > news >正文

python-leetcode-不同的二叉搜索树 II

95. 不同的二叉搜索树 II - 力扣(LeetCode)

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def generateTrees(self, n: int) -> List[Optional[TreeNode]]:
        if n == 0:
            return []
        return self._generate_trees(1, n)
    
    def _generate_trees(self, start, end):
        trees = []
        # 如果区间为空,则返回 [None] 作为空树的情况
        if start > end:
            trees.append(None)
            return trees
        
        # 枚举每个数字作为根节点
        for i in range(start, end + 1):
            # 递归生成所有可能的左子树和右子树
            left_trees = self._generate_trees(start, i - 1)
            right_trees = self._generate_trees(i + 1, end)
            
            # 将所有左子树和右子树组合起来
            for left in left_trees:
                for right in right_trees:
                    root = TreeNode(i)
                    root.left = left
                    root.right = right
                    trees.append(root)
        
        return trees

相关文章:

  • 2606. 找到最大开销的子字符串
  • 单片机入门(一)
  • Kconfig与CMake初步模块化工程3
  • 贪心算法--给定一个只包含X和.字符串
  • mysql表的约束
  • springboot可以同时处理多少个请求
  • 2503,D比C更易重构
  • 将md格式转jupyter并运行
  • Redis 实现延迟队列的方案
  • 【STM32项目实战系列】基于STM32G474的FDCAN驱动配置
  • 动态规划_路径问题(典型算法思想)—— OJ例题算法解析思路
  • C++20 中位移位运算符的统一行为:深入解析与实践指南
  • 紧跟 Web3 热潮,RuleOS 如何成为行业新宠?
  • 月结保障:回滚慢、行锁频发
  • UltraScale系列FPGA实现SDI转PCIE3.0采集卡,基于UltraScale GTH+XDMA架构,提供工程源码和技术支持
  • OpenCV计算摄影学(13)实现 Reinhard 全局色调映射算法的类cv::TonemapReinhard
  • 基于Arcgis的python脚本实现相邻矢量面的高度字段取平均值
  • 力扣-动态规划-583 两个字符的删除操作
  • 从0到1构建AI深度学习视频分析系统--基于YOLO 目标检测的动作序列检查系统:(0)系统设计与工具链说明
  • QT 作业 day4
  • 西安公司企业网站建设/百度下载免费
  • php 移动网站开发/深圳关键词优化公司哪家好
  • 网站建设发布ps科技感/网络推广公司官网
  • 郑州网站建设公司谷雨/百度推广排名代发
  • 龙华做网站联系电话/发稿
  • 宁波外贸网站设计公司/公司网站制作流程