• Python算法——树的最大深度和最小深度


    Python中的树的最大深度和最小深度算法详解

    树的最大深度和最小深度是树结构中的两个关键指标,它们分别表示树的从根节点到最深叶子节点的最大路径长度和最小路径长度。在本文中,我们将深入讨论如何计算树的最大深度和最小深度,并提供Python代码实现。我们将详细说明算法的原理和步骤。

    计算树的最大深度

    树的最大深度是指从根节点到最深叶子节点的最大路径长度。我们可以通过递归遍历树的左右子树来计算树的最大深度。

    class TreeNode:
        def __init__(self, value):
            self.val = value
            self.left = None
            self.right = None
    
    def max_depth(root):
        if not root:
            return 0
        left_depth = max_depth(root.left)
        right_depth = max_depth(root.right)
        return 1 + max(left_depth, right_depth)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    计算树的最小深度

    树的最小深度是指从根节点到最近叶子节点的最小路径长度。和最大深度类似,我们同样可以通过递归遍历树的左右子树来计算树的最小深度。

    def min_depth(root):
        if not root:
            return 0
        left_depth = min_depth(root.left)
        right_depth = min_depth(root.right)
        return 1 + (min(left_depth, right_depth) if left_depth and right_depth else max(left_depth, right_depth))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例

    考虑以下二叉树:

    # 构建二叉树
    """
            1
           / \
          2   3
         / \
        4   5
    """
    root = TreeNode(1)
    root.left = TreeNode(2)
    root.right = TreeNode(3)
    root.left.left = TreeNode(4)
    root.left.right = TreeNode(5)
    python
    Copy code
    # 计算最大深度和最小深度
    max_depth_value = max_depth(root)
    min_depth_value = min_depth(root)
    
    print("树的最大深度:", max_depth_value)
    print("树的最小深度:", min_depth_value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    输出结果:

    树的最大深度: 3
    树的最小深度: 2
    
    • 1
    • 2

    这表示在给定的二叉树中,最大深度为3,最小深度为2。通过递归算法,我们能够有效地计算树的最大深度和最小深度。这两个指标在分析树结构时常常被用于评估树的形状和性质。通过理解算法的原理和实现,您将能够更好地处理树结构问题。

  • 相关阅读:
    Hive企业级调优
    jenkins发布springboot到k8s
    黑马JVM学习笔记-内存结构
    stretchly定时提醒软件
    SpringCache
    树莓派pico mpu6050 一阶互补滤波&四元数法 解算姿态角
    An工具介绍之钢笔工具、铅笔工具与画笔工具
    罗丹明PEG活性酯 RB-PEG-NHS,罗丹明聚乙二醇活性酯,Rhodamine-PEG-NHS
    怎么预防鸡葡萄球菌病 防治鸡球菌病的特效药
    动态SQL
  • 原文地址:https://blog.csdn.net/weixin_46178278/article/details/134497533