+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-08(60)

2019-09(98)

2019-10(7)

2019-11(9)

2019-12(12)

【剑指Offer】38. Python实现二叉树的深度

发布于2020-05-30 14:32     阅读(858)     评论(0)     点赞(26)     收藏(3)


知识点:树

题目描述:

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

详解:

方法一:

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def TreeDepth(self, pRoot):
        # write code here
        if pRoot:
            return max(self.TreeDepth(pRoot.left), self.TreeDepth(pRoot.right)) + 1 
        else:
            return 0
        

方法二:

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def TreeDepth(self, pRoot):
        # write code here
        if pRoot:
            return 1+max(map(self.TreeDepth,(pRoot.left,pRoot.right))) 
        else:
            return 0       

知识点:
map() 会根据提供的函数对指定序列做映射。

map(function, iterable, ...)
  • 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
  • iterable – 一个或多个序列

实例:

>>>def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
 
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]

参考链接:

  1. https://blog.csdn.net/qq_36936730/article/details/104691052
  2. https://www.runoob.com/python/python-func-map.html

原文链接:https://blog.csdn.net/weixin_43439235/article/details/106431509



所属网站分类: 技术文章 > 博客

作者:dfjdhfjdf

链接: https://www.pythonheidong.com/blog/article/397870/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)