【剑指offer】JZ55 二叉树的深度

题目

1、层次遍历


class TreeNode:def __init__(self, data=0):self.val = dataself.left = Noneself.right = Noneclass Solution:def TreeDepth(self , pRoot: TreeNode) -> int:# write code hereif pRoot is None:return 0count = 0now_layer = [pRoot]next_layer = []while now_layer:for i in now_layer:if i.left:next_layer.append(i.left)if i.right:next_layer.append(i.right)count += 1now_layer, next_layer, = next_layer, []return countif __name__ == '__main__':inp = [1,2,3,4,5,'#',6,'#','#',7]bt = TreeNode(1)bt.left = TreeNode(2)bt.right = TreeNode(3)bt.left.left = TreeNode(4)bt.left.right = TreeNode(5)bt.right.left = Nonebt.right.right = TreeNode(6)bt.left.left.left = Nonebt.left.left.right = Nonebt.left.right.left = TreeNode(7)solution = Solution()print('深度:', solution.TreeDepth(bt))
深度: 4

2、递归


class TreeNode:def __init__(self, data=0):self.val = dataself.left = Noneself.right = Noneclass Solution:def TreeDepth(self , pRoot: TreeNode) -> int:# write code hereif not pRoot:return 0left = right =0if pRoot.left:left = self.TreeDepth(pRoot.left)if pRoot.right:right = self.TreeDepth(pRoot.right)return max([left,right])+1if __name__ == '__main__':inp = [1,2,3,4,5,'#',6,'#','#',7]bt = TreeNode(1)bt.left = TreeNode(2)bt.right = TreeNode(3)bt.left.left = TreeNode(4)bt.left.right = TreeNode(5)bt.right.left = Nonebt.right.right = TreeNode(6)bt.left.left.left = Nonebt.left.left.right = Nonebt.left.right.left = TreeNode(7)solution = Solution()print('深度:', solution.TreeDepth(bt))
深度: 4

【剑指offer】JZ55 二叉树的深度 python相关推荐

  1. 剑指offer:二叉树的深度

    题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 解题思路 递归做法 /* struct TreeNode {int ...

  2. 《剑指offer》二叉树的深度

    题目:输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 解析:递归法求解,非递归法求解参考另外一篇博文 非递归法:http:// ...

  3. 【剑指offer】二叉树的深度_solution2

    题目:输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 1 /* 2 struct TreeNode { 3 int val; ...

  4. 《剑指Offer》 二叉树的深度

    题目描述: 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 思路: 如果当前根节点为NULL返回0,递归调用左右子节点,返回l ...

  5. 剑指Offer值二叉树的深度

    题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. 解题思路 递归地求解,深度是左右子树中较高的一个,递归终止条件的遇到 ...

  6. 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)

    文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...

  7. 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java

    <LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...

  8. 【LeetCode】剑指 Offer 34. 二叉树中和为某一值的路径

    [LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 文章目录 [LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 package offer;import ja ...

  9. 【LeetCode】剑指 Offer 27. 二叉树的镜像

    [LeetCode]剑指 Offer 27. 二叉树的镜像 文章目录 [LeetCode]剑指 Offer 27. 二叉树的镜像 一.递归法 二.辅助栈(或队列) 一.递归法 根据二叉树镜像的定义,考 ...

  10. 剑指offer 矩阵中的路径 @python

    剑指offer 矩阵中的路径 @python 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向 ...

最新文章

  1. 8 个 Python 高效数据分析的技巧
  2. delphi 只允许运行一个实例的三种方法《转》
  3. axure实现搜索功能_vue实现模糊搜索功能
  4. html5发布原文,HTML5 第二份草案发布
  5. 揭开网络编程常见API的面纱【下】
  6. 2.15.9.menuconfig的实验学习思路
  7. MYSQL数据库学习----查询
  8. unix环境高级编程基础知识之第一篇
  9. 全国大学生数学建模比赛介绍及其入门(国赛+美赛)
  10. android5.1+xposed卡刷包,一加5 7.1 ROM刷机包 最终版王者高帧率极速吃鸡超多自定义Xposed...
  11. java -jar 详解,Java中jar命令详解
  12. Openwrt 镜像安装
  13. 杭州地铁首末站周边停车场正酝酿停车收费优惠
  14. 独家|一文读懂优化算法
  15. 你需要立即停止的9个习惯! 2012-03-11 10:01:41
  16. Java编程那些事儿69——抽象类和接口(二)
  17. 初学电子快速入门的方法
  18. 从哪里租vps远程桌面服务器,vps远程桌面服务器出租
  19. Chef 命令实例,你必须了解的100条
  20. 变强——GitHub 热点速览 Vol.46

热门文章

  1. 微信小程序实现带参数的分享功能
  2. OpenCV4.3 Java 编程入门:Core 组件中的数据结构与方法
  3. Could not locate call adapter for io.reactivex.Observable
  4. 初学C语言的感受(张森)
  5. 如何从Apple电子钱包中删除旧登机牌
  6. BZOJ 3505: [Cqoi2014]数三角形|组合数学
  7. 嵌入式Qt-做一个秒表
  8. 若依代码生成使用教程
  9. 若依集成actuator实现优雅关闭应用
  10. shader篇-处理复杂光照