博客
关于我
二叉树的深度
阅读量:328 次
发布时间:2019-03-04

本文共 802 字,大约阅读时间需要 2 分钟。

二叉树的深度

【题目】:

输入一颗二叉树的根节点,求该二叉树的深度。二叉树的深度是从根节点到叶子节点所形成的最长的路径。

【解题思路】:

递归,分别求取左子树和右子数的深度,然后将最大的值加1进行返回。

示例代码:

#  define a tree nodeclass TreeNode(object):    def __init__(self, val):        self.val = val        self.left = None        self.right = Nonedef tree_deep(root):    if not root:        return 0  # 这儿不能return None, 否则不能参与下面return+1的计算    left = tree_deep(root.left)    right = tree_deep(root.right)    return max(left, right) + 1#  test#  creat a treedef creat_tree(nums, index):    if not nums:        return None    if index >= len(nums):        return None    root = TreeNode(nums[index])    root.left = creat_tree(nums, index * 2 + 1)    root.right = creat_tree(nums, index * 2 + 2)    return rootroot = creat_tree([1, 2, 3, None, 5, None, 6, None, None, 7], 0)print(tree_deep(root))

运行结果:

转载地址:http://lrhh.baihongyu.com/

你可能感兴趣的文章
自定义Hive Sql Job分析工具
查看>>
【MySQL】(九)触发器
查看>>
Oracle 11G环境配置
查看>>
【Python】(十二)IO 文件处理
查看>>
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
查看>>
师兄面试遇到这条 SQL 数据分析题,差点含泪而归!
查看>>
C语言的数值溢出问题(上)
查看>>
函数指针的典型应用-计算函数的定积分(矩形法思想)
查看>>
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
查看>>
用 wxPython 打印你的 App
查看>>
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
查看>>
android:使用audiotrack 类播放wav文件
查看>>
聊聊我的五一小假期
查看>>
CSS position属性static/relative/absolute/fixed/sticky用法总结
查看>>
LeetCode:28. 实现 strStr()——————简单
查看>>
Lionheart万汇:布林线双底形态分析技巧
查看>>
数据库三个级别封锁协议
查看>>
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
查看>>
Java求逆波兰表达式的结果(栈)
查看>>
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
查看>>