首页 > 编程语言 >LeetCode Top100: 二叉树的最大深度 (python)

LeetCode Top100: 二叉树的最大深度 (python)

时间:2023-04-17 21:56:16浏览次数:38  
标签:right python depth 二叉树 深度 Top100 节点 left

 

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

示例:
给定二叉树 [3,9,20,null,null,15,7]

    3
   / \
  9  20
    /  \
   15   7

返回它的最大深度 3 。

 

以下是Python代码实现:

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def maxDepth(root: TreeNode) -> int:
    if root is None:
        return 0
    left_depth = maxDepth(root.left)
    right_depth = maxDepth(root.right)
    return max(left_depth, right_depth) + 1

使用递归来求解二叉树的最大深度,递归函数需要传入当前节点和当前深度,每次递归时深度加1,最终返回左子树和右子树中深度的较大值加1。 其中,TreeNode表示二叉树节点的类,maxDepth函数是递归函数,root表示当前节点,left_depth和right_depth分别表示左子树和右子树的深度,最后返回左右子树深度的较大值加1即为二叉树的最大深度。

 

标签:right,python,depth,二叉树,深度,Top100,节点,left
From: https://www.cnblogs.com/huadongw/p/17327645.html

相关文章

  • python学习---字符串格式化
    字符串格式化 数字和字符串的拼接   快速方法f,{} ......
  • Python3 列表生成式和最近刷题遇到问题
    python3创建二维数组需要用到列表生成式列表生成式即ListComprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。举个例子,要生成list [1,2,3,4,5,6,7,8,9,10]可以用list(range(1,11)):>>>list(range(1,11))[1,2,3,4,5,6,7,8,9,10]......
  • 4月16日leetcode二叉树前序遍历创建字符串,二叉树的层序遍历
    给你二叉树的根节点root,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。空节点使用一对空括号对"()"表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。来源:力扣(LeetCode)链接:https://leetcode.cn/pro......
  • python魔术方法学习总结代码
    classmyclass:name=Noneage=Nonedef__init__(self,name,age):"""魔术方法!!!类的构造方法:paramname::paramage:"""self.name=nameself.age=age......
  • LeetCode Top100:二叉树的中序遍历(Python)
     给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例1:输入:root=[1,null,2,3]输出:[1,3,2]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1] 提示:树中节点数目在范围 [0,100] 内-100<=Node.val<=100 以下是一个Python程序,......
  • python爬虫scrapy框架的使用
    总结scrapystartprojectnamescrapygenspiderbaiduhttp://www.baidu.comscrapycrawlbaiduscrapy项目创建scrapystartprojectscrapy_baidu_091创建爬虫文件在spider中创建爬虫文件#scrapygenspider名称域名(不写http)scrapygenspiderbaiduhttp://www.b......
  • 基于Python程序模拟核酸检测寻找最优化方案
    本文中的数学建模问题来源于NKU的数学建模第二次实战演练,由于本次是我来进行程序的编写,故将代码与笔记记录在这里。问题提要现有800万市民报名参与核酸检测,如果对每人逐一进行检测,所需时间和检测能力都超过现实情况,所以拟采用混样检测(grouptesting)方式进行。先考虑混样规模为......
  • 二叉树中和为某一值的路径
    描述输入一颗二叉树的根节点root和一个整数expectNumber,找出二叉树中结点值的和为expectNumber的所有路径。1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点2.叶子节点是指没有子节点的节点3.路径只能从父节点到子节点,不能从子节点到父节点4.总节点数目为n如二叉......
  • Python替换文件内容
    文件部分内容如下:<mappingcell="A1">request.aaPriceChangeDesc</mapping><mappingcell="B1">request.aaStartDate</mapping><mappingcell="C1">request.aaSumCode</mapping><mappingcell=......
  • 自动化脚本:一键安装python自定义版本
     1:环境:centos7python2.72:脚本内容:#!/usr/bin/envpythonimportosimportsysimportrequestsimporttarfileimportshutilimportsubprocess#Installnecessarypackagestry:subprocess.check_call(["yum","install","-y&qu......