LeetCode二叉树最小深度(Python)——深度、广度优先遍历

题目

LeetCode二叉树最小深度(Python)——深度、广度优先遍历

解题思路

深度优先遍历 :

之前求最大深度的题有所不同,如果只是简单地把max改成min的话,假设一个节点的左子节点空,右子节点非空,那么通过min返回的深度是0,但实际上我们想返回的是右子节点路径的深度,所以需要对子节点的情况分类讨论:
LeetCode二叉树最小深度(Python)——深度、广度优先遍历
执行结果为:
LeetCode二叉树最小深度(Python)——深度、广度优先遍历
广度优先遍历:

同样需要分类讨论一下,并且由于是层次遍历,所以第一次碰到叶子结点就可以return了:
LeetCode二叉树最小深度(Python)——深度、广度优先遍历

执行结果为:

LeetCode二叉树最小深度(Python)——深度、广度优先遍历