python创建树结构、求深度_Python实现二叉树的最小深度的两种方法
找到给定二叉树的最小深度
最小深度是从根节点到最近叶子节点的最短路径上的节点数量
注意:叶子节点没有子树
Example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its minimum depth = 2.
1:算法遍历二叉树每一层,一旦发现某层的某个结点无子树,就返回该层的深度,这个深度就是该二叉树的最小深度
def minDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if not root:
return 0
curLevelNodeList = [root]
minLen = 1
while curLevelNodeList is not []:
tempNodeList = []
for node in curLevelNodeList:
if not node.left and not node.right:
return minLen
if node.left is not None:
tempNodeList.append(node.left)
if node.right is not None:
tempNodeList.append(node.right)
curLevelNodeList = tempNodeList
minLen += 1
return minLen
2:用递归解决该题和"二叉树的最大深度"略有不同。主要区别在于对“结点只存在一棵子树”这种情况的处理,在这种情况下最小深度存在的路径肯定包括该棵子树上的结点
def minDepth(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if not root:
return 0
if not root.left and root.right is not None:
return self.minDepth(root.right)+1
if root.left is not None and not root.right:
return self.minDepth(root.left)+1
left = self.minDepth(root.left)+1
right = self.minDepth(root.right)+1
return min(left,right)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
时间: 2019-09-29
python创建树结构、求深度_Python实现二叉树的最小深度的两种方法相关推荐
- 百钱买百鸡python编程列表推导式_使用循环和列表推导式两种方法求解百钱买百鸡问题。假设大鸡5元一只,中鸡3元一只,小鸡1元三只,现有100元钱想买100只鸡,有多少种买法?...
[程序题]编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 1/1+1/3+...+1/n [单选题]患者男,67岁.确诊为原发性支气管肺癌,为行手术 ...
- python基础入门:实现(无重复字符)字符串的全排列的两种方法
求任意一个字符串的全排列组合,例如a='123',输出 123,132,213,231,312,321.(暂时假定字符串没有重复) 目前有两种解决的方法 方法一: def str_sort(s='') ...
- 二叉树的层序遍历(两种方法实现)
两种方法实现二叉树的层序遍历 1.说明 二叉树的层序遍历是面试经常会被考察的知识点,甚至要求当场写出实现过程. 层序遍历所要解决的问题很好理解,就是按二叉树从上到下,从左到右依次打印每个节点中存储的数 ...
- python气象数据处理与绘图_Python气象数据处理与绘图(15):两种波作用通量计算的python实现及对比(Plumb T-N) (已更正)...
大气动力学中通常用波作用通量来诊断 Rossby波的传播.常用的三种波作用通量分别为局地E-P 通量,Plumb 波作用通量和T-N 波作用通量.局地E-P 通量可以诊断一段时间内天气尺度瞬变波对定长 ...
- python字典去最值_python 比较字典value的最大值的几种方法
python中获取字典的key列表和value列表 # -*- coding: utf-8 -*- # 定义一个字典 dic = {'剧情': 11, '犯罪': 10, '动作': 8, '爱情': ...
- python 字符串转函数名_Python 使用函数名(字符串)调用函数(4种方法)
先看一个例子: >>> def foo(): print("foo") >>> def bar(): print("bar" ...
- python取出字典中最大值_python 比较字典value的最大值的几种方法
python中获取字典的key列表和value列表 # -*- coding: utf-8 -*- # 定义一个字典 dic = {'剧情': 11, '犯罪': 10, '动作': 8, '爱情': ...
- 【 MATLAB 】使用 MATLAB 求由差分方程表示的滤波器的响应的两种方法
例题: 一个3阶低通滤波器由下面差分方程描述: y(n) = 0.0181 x(n) + 0.0543 x(n-1) + 0.0543 x(n-2) + 0.0181 x(n-3) + 1.76 y( ...
- 用python打开视频_python读取视频流提取视频帧的两种方法
本文实例为大家分享了python读取视频流提取视频帧的具体代码,供大家参考,具体内容如下 方法一:通过imageio库和skimage库 1. 安装环境: pip install imageio pi ...
最新文章
- 手机与Camera CCM技术发展趋势
- BZOJ2115 [Wc2011] Xor
- jquery文本折叠
- 2018 Multi-University Training Contest 6-oval-and-rectangle(hdu 6362)-题解
- Maven的发布plugin配置
- HLS:@E Simulation failed SIGSEGV
- 自动化运维工具Ansible实战(四)常用模块
- .net System.Web.Mail发送邮件
- 跨服务器、跨数据库、多表联合查询
- python里常用的正则表达式
- 人工智能第六章——约束满足问题(CSP)
- 马化腾:灰度法则的七个维度
- Android实现百度地图定位(墨雪亲测)
- 10个简单的hacker加速你在Python中的数据分析
- 关于网站漏洞的案例和解决思路
- Jquery ajax, Axios, Fetch区别之我见 Axios中文说明
- Linux文件管理系统
- R语言入门(学习笔记)
- 数学与生活 (远山启 著)
- 贪心算法解决最优装载问题c语言,贪心算法解决最优装载问题
热门文章
- NLP 自然语言分析理解
- 合作式智能运输系统 车用通信系统应用层及应用数据交互标准 第二阶段_为什么一定要了解OPC UA TSN——未来的工业通信标准...
- python logging打印终端_想知道Python如何在终端上打印表格吗?两行代码告诉你!
- java盛最多水的容器_Leetcode刷题java之11. 盛最多水的容器(top100)
- 果园机器人的写作思路_《果园机器人》三年级教学设计
- 桌面壁纸的deepin或者uos水印如何去除
- php 12小时,使用php怎么将12小时制转换为24小时制
- java鼠标事件_Java 模拟鼠标事件
- var conf=confirm(确定要删除吗?);_微信查看谁删除了4种方法
- Vue.js(8)- 父组件给子组件传值