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

计算二叉树的深度(LeetCode)

题目

某公司架构以二叉树形式记录,请返回该公司的层级数。

解题

# 定义二叉树的节点
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def maxDepth(root):
    if not root:
        return 0
    
    # 计算左子树和右子树的深度
    left_depth = maxDepth(root.left)
    right_depth = maxDepth(root.right)
    
    # 树的深度是左子树和右子树深度的最大值加1
    return max(left_depth, right_depth) + 1

# 示例用法
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)

# 调用函数,输出结果
print(maxDepth(root))  # 输出3

 


http://www.kler.cn/a/288563.html

相关文章:

  • C# 对象和类型(结构)
  • C# XPTable 带图片的增删改查(XPTable控件使用说明十三)
  • 【Linux】深入理解文件系统(超详细)
  • 前后端分离架构设计与实现:构建现代Web应用的基石
  • vue3中el-table实现多表头并表格合并行或列
  • QT-TCP-server
  • 旗帜分田(华为od机考题)
  • 用ChatGPT提升论文质量:改进语法、用词和行文的有效方法
  • WinForm技巧之自定义条件
  • 1688精选货源API接口升级||1688选品
  • 数学基础 -- 线性代数之行阶梯形
  • JavaScript高级进阶(一)
  • SprinBoot+Vue停车场管理微信小程序的设计与实现
  • C# 上位机开发指南:高效学习建议
  • 力扣刷题--LCP17.速算机器人【简单】
  • ChatGPT 3.5/4新手使用手册(附:案例)
  • LabVIEW电机多次调用
  • 基于RAG多层次的多代理架构来处理时序任务
  • Vue3中 defineProps 与 defineEmits 基本使用
  • hive中datediff函数介绍
  • 二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)
  • verilog 中的for循环用法
  • 深度学习(一)-感知机+神经网络+激活函数
  • Qt 实现部件或者窗口(QWidget)透明效果和其他特殊效果
  • 深度解析TCP与UDP协议
  • 每日一题——第七十九题