博客
关于我
二叉树的深度
阅读量:329 次
发布时间: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/

你可能感兴趣的文章
abstract关键字的使用
查看>>
.NET微信网页开发之使用微信JS-SDK调用微信扫一扫功能
查看>>
解决Spirng注入时名称下的红色波浪线
查看>>
EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public?
查看>>
使用mybatis-generator生成底层
查看>>
Android APK 重签名
查看>>
Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息
查看>>
Mybatis【5】-- Mybatis多种增删改查那些你会了么?
查看>>
Mybatis【7】-- Mybatis如何知道增删改是否成功执行?
查看>>
计算输入的一句英文语句中单词数
查看>>
lvs+keepalive构建高可用集群
查看>>
Mysql高可用架构(主从同步)
查看>>
mysql主从延迟高的原因
查看>>
ATS缓存数据结构
查看>>
glob模块
查看>>
6 个 Linux 运维典型问题
查看>>
Failed to get D-Bus connection: Operation not permitted解决
查看>>
oracle无法启动asm实例记录
查看>>
取消vim打开文件全是黄色方法
查看>>
一个系统部署多个tomcat实例
查看>>