美文网首页
树1 二叉树的最大深度

树1 二叉树的最大深度

作者: 是黄小胖呀 | 来源:发表于2020-08-12 21:44 被阅读0次

    给定一个二叉树,找出其最大深度。

    二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

    说明: 叶子节点是指没有子节点的节点。

    示例:

    给定二叉树 [3,9,20,null,null,15,7],

        3

      / \

      9  20

        /  \

      15  7

    返回它的最大深度 3 。

    1、思路1:递归+深度优先搜索

    代码如下:

    class Solution:

        def maxDepth(self, root: TreeNode) -> int:

            if root is None: 

                return 0 

            else: 

                left_height = self.maxDepth(root.left) 

                right_height = self.maxDepth(root.right) 

                return max(left_height, right_height) + 1 

    2、广度优先搜索

    遍历每一层,重要的是 二叉树的截止搜索条件:所有子节点的子节点都为空

    代码如下:

    # Definition for a binary tree node.

    #class TreeNode:

         #def __init__(self, x):

             #self.val = x

             #self.left = None

             #self.right = None

    class Solution:

        def maxDepth(self, root: TreeNode) -> int:

            if root is None: 

                return 0 

            tmp=deque([root])

            level=0

            while tmp:

                n=len(tmp)

                #node=tmp.popleft()

                for i in range(n):

                    node = tmp.popleft()

                    if node.left is not None:

                        tmp.append(node.left)

                    if node.right is not None:

                        tmp.append(node.right)

                level=level+1

            return level

    参考资料:

    1、二叉树的最大深度

    https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/solution/python-3di-gui-zi-ding-xiang-xia-zi-di-xiang-shang/

    相关文章

      网友评论

          本文标题:树1 二叉树的最大深度

          本文链接:https://www.haomeiwen.com/subject/sqbmdktx.html