[LeetCode]题解,python:111 Minimum Depth of Binary Tree

题目来源


https://leetcode.com/problems/minimum-depth-of-binary-tree/

Given a binary tree, find its minimum depth.

The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.


题意分析


Input: a binary tree

Output: leaf node 的最小深度

Conditions: 注意一定要是leaf节点,求leaf节点的最小深度


题目思路


递归,注意与求最大深度不同


AC代码(Python)

 1 # Definition for a binary tree node.
 2 # class TreeNode(object):
 3 #     def __init__(self, x):
 4 #         self.val = x
 5 #         self.left = None
 6 #         self.right = None
 7 
 8 class Solution(object):
 9     def minDepth(self, root):
10         """
11         :type root: TreeNode
12         :rtype: int
13         """
14         if root == None:
15             return 0
16         if root.left == None and root.right != None:
17             return self.minDepth(root.right) + 1
18         if root.left != None and root.right == None:
19             return self.minDepth(root.left) + 1
20         return min(self.minDepth(root.left), self.minDepth(root.right)) + 1
21