leetcode104—求二叉树深度

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

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


思路

对于二叉树深度问题,深度为左右子树深度最大值加1

depth = max(left_depth, right_depth)+1

二叉树问题考虑递归方法,通过递归获取左右子树深度,选取最大值


完整代码

class Solution:def maxDepth(self, root: TreeNode) -> int:if not root:return 0else:left = self.maxDepth(root.left)right = self.maxDepth(root.right)return max(left, right)+1

复杂度分析

时间复杂度:
会遍历每一个结点,所以为O(n)
空间复杂度:
O(height),其中 height 表示二叉树的高度。递归函数需要栈空间,而栈空间取决于递归的深度,因此空间复杂度等价于二叉树的高度。

leetcode104---求二叉树深度相关推荐

  1. 【数据结构】求二叉树深度的算法

    要求二叉树的深度,方法是先求出左子树的深度,再求出右子树的深度,二叉树的深度就是左子树的深度和右子树的深度中的最大值加1. 自然而然想到用后根遍历的思想实现 主要步骤如下: 若二叉树为空,则返回0值, ...

  2. 求二叉树深度算法(深度优先、广度优先)

    求二叉树深度的算法 求二叉树深度 方法一:深度优先的遍历方式 方法二:广度优先的遍历方式 总结 求二叉树深度 注:本文中二叉树通过二叉链表构建. 节点类型定义如下: struct node{char ...

  3. C++求二叉树深度的两种方法

    今天在leetcode中碰到了求二叉树的深度问题,于是总结一下这两种方法 方法一是用递归的方法,方法二是借助队列和层序遍历的思想 #include<iostream> #include&l ...

  4. 求二叉树深度以及寻找二叉树中某一节点值

    求二叉树的深度依然用的是二叉树递归的特性.二叉树的深度就是你根节点的这一层加上他左孩子或者右孩子中深度大的哪一个,同样这也能被划分为子问题. size_t BTreeDepth(BTNode* roo ...

  5. 判断完全二叉树及求二叉树深度完整代码

    完全二叉树定义:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下.从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二 ...

  6. python求二叉树深度(递归)

    def tree_deep(root):if not root:return 0 #说明上一个节点是叶子节点,开始逐步返回left, right = 0, 0if root.left:left = t ...

  7. 【笔记】顺序存储结构求二叉树深度

    代码: #include<vector> using namespace std; vector<int> e[100005]; int dep[100005], f[1000 ...

  8. 基于visual Studio2013解决面试题之0601二叉树深度

     题目 解决代码及点评 /*求二叉树深度 */#include <iostream> #include <stack> using namespace std;templ ...

  9. 数据结构实验之二叉树八:(中序后序)求二叉树的深度

    Description 已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度. Input 输入数据有多组,输入T,代表有T组数据.每组数据包括两个长度小于50的字符串,第一个字符串表示二叉树的 ...

最新文章

  1. uva 1416 (SPFA) **月赛第E题的原题**
  2. oracle增量合并存储过程,怎么将视图与存储过程里的逻辑合并
  3. sqlserver2000 mdf 文件导入
  4. [置顶]       cocos2d-x 手游源码站
  5. Redis为什么默认16个数据库,干什么用?
  6. 体检异常率98%?数据分析告诉你如今的90后身体状况到底有多差?
  7. java中的保留n位小数
  8. Android中ActionBar中不显示overflow(就是三个点的那个按钮)解决办法
  9. asp.net gridview 无法更新数据
  10. HALCON 21.11:深度学习笔记---分类(10)
  11. 数据科学之——大数据体系
  12. 百度程序员删库跑路被逮捕!
  13. Geek Uninstaller
  14. STM32CubeIDE配置使用
  15. 串口服务器采集需要通讯协议么,C2000-A2-SDX6000-CX1
  16. 【Linux】SOCKET编程
  17. dpdk 问题分析:ice 100G 网卡 rx_packets 与 rx_bytes 统计问题
  18. 每日一题 --- P1093 [NOIP2007 普及组] 奖学金[洛谷][JAVA]
  19. Nginx中server_name指令介绍
  20. laradock 安装使用 kafka

热门文章

  1. 《海马汽车经销商管理系统》C# .NET MVC项目研发阶段性总结
  2. list批量每次处理1000条
  3. 伏羲次序与方位图及河图河书的时空模式(事)
  4. 相机的内参会改变吗_相机内参外参及成像过程
  5. 为什么一字节是8位?
  6. 薪资被严重高估的职业:数据分析师!
  7. idea调试怎么跳出循环_Idea调试技巧
  8. ARP地址解析的过程
  9. 微信小程序单个和循环倒计时
  10. win10备份为wim_请在作死前创建系统备份!