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

题目

LeetCode二叉树最小深度(Python)——深度、广度优先遍历_第1张图片

解题思路

深度优先遍历 :

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

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

执行结果为:

LeetCode二叉树最小深度(Python)——深度、广度优先遍历_第5张图片

你可能感兴趣的:(LeetCode之路,二叉树,leetcode,数据结构,python)