Open youngyangyang04 opened 3 months ago
可以运用和最大深度相似的代码,此时只有在叶子节点才进行深度的更新,我的python代码如下:
class Solution:
def __init__(self):
self.result = 10**9
def minDepth(self, root: Optional[TreeNode]) -> int:
# DFS,前序遍历求深度
if not root:
return 0
self._get_min_depth(root, 1)
return self.result
def _get_min_depth(self, node, depth):
# 左右子树只要有一个,说明当前都不是叶子节点
# 因此self.result应该在没有左右节点时更新
if not node:
return
if not node.left and not node.right:
if self.result > depth:
self.result = depth
return
self._get_min_depth(node.left, depth + 1)
self._get_min_depth(node.right, depth + 1)
https://www.programmercarl.com/0111.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E6%B7%B1%E5%BA%A6.html