首页 > 其他分享 >二叉树的最小深度

二叉树的最小深度

时间:2023-02-15 17:45:06浏览次数:35  
标签:right self 最小 depth 二叉树 深度 root 节点 left

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

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

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

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:2

示例 2:
输入:root = [2,null,3,null,4,null,5,null,6]
输出:5

# 解题

# Definition for a binary tree node.
class TreeNode(object):
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right


class Solution(object):
    def minDepth(self, root):
        # 如果二叉树是空的,则直接返回0
        if root is None:
            return 0
        # 获取左节点的深度
        left_depth = self.minDepth(root.left)
        # 获取右节点的深度
        right_depth = self.minDepth(root.right)
        # 如果左子树或右子树有一个为空,则取另一个子树的深度
        if left_depth == 0 or right_depth == 0:
            return left_depth+right_depth+1
        return min(left_depth, right_depth)+1

if __name__ == '__main__':
    root = TreeNode(3)
    root.right = TreeNode(20)
    root.right.left = TreeNode(15)
    root.right.right = TreeNode(7)
    print(Solution().getDepth(root))

 

标签:right,self,最小,depth,二叉树,深度,root,节点,left
From: https://www.cnblogs.com/jizg/p/17124081.html

相关文章