📜  数据结构|二叉树|问题15(1)

📅  最后修改于: 2023-12-03 15:26:09.378000             🧑  作者: Mango

数据结构 - 二叉树 - 问题15

二叉树是一种常见的数据结构,它由一个根节点,每个节点最多有两个子节点组成,每个子节点也同样是一颗二叉树。

问题15:给定一个二叉树,找到其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

解法

最小深度可以用递归的方式来计算,具体来说:

  1. 如果二叉树为空,返回0。
  2. 如果二叉树的左子树为空,返回右子树的最小深度加1。
  3. 如果二叉树的右子树为空,返回左子树的最小深度加1。
  4. 否则,返回左子树和右子树中最小深度的较小值加1。

下面是用Python实现的递归代码:

def minDepth(root):
    if not root:
        return 0
    if not root.left:
        return minDepth(root.right) + 1
    if not root.right:
        return minDepth(root.left) + 1
    return min(minDepth(root.left), minDepth(root.right)) + 1
总结

这道问题是二叉树的基本问题之一,需要程序员了解二叉树的基本性质和递归的实现方式。在解决问题的过程中,需要对递归的边界进行判断,确保程序的正确性。