栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

题目

1、层次遍历
class TreeNode:
    def __init__(self, data=0):
        self.val = data
        self.left = None
        self.right = None


class Solution:
    def TreeDepth(self , pRoot: TreeNode) -> int:
        # write code here
        if pRoot is None:
            return 0
        count = 0
        now_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 += 1
            now_layer, next_layer, = next_layer, []
        return count

if __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 = None
    bt.right.right = TreeNode(6)

    bt.left.left.left = None
    bt.left.left.right = None
    bt.left.right.left = TreeNode(7)

    solution = Solution()
    print('深度:', solution.TreeDepth(bt))

深度: 4
2、递归
class TreeNode:
    def __init__(self, data=0):
        self.val = data
        self.left = None
        self.right = None

class Solution:
    def TreeDepth(self , pRoot: TreeNode) -> int:
        # write code here
        if not pRoot:
            return 0
        left = right =0
        if pRoot.left:
            left = self.TreeDepth(pRoot.left)
        if pRoot.right:
            right = self.TreeDepth(pRoot.right)
        return max([left,right])+1

if __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 = None
    bt.right.right = TreeNode(6)

    bt.left.left.left = None
    bt.left.left.right = None
    bt.left.right.left = TreeNode(7)

    solution = Solution()
    print('深度:', solution.TreeDepth(bt))

深度: 4
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/689064.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号