代码仓库:Github | Leetcode solutions @doubleZ0108 from Peking University.
- 解法1(T81% S89%):与最大深度不同,不需要完整遍历,只需要找到第一个叶节点也就找到了最小深度,比较适合用层次遍历,而且在入队的同时将所在level和val打包成元组一同压,当遇到弹出队头的某个元素是叶就直接返回其level即可
class Solution:
def minDepth(self, root: TreeNode) -> int:
if not root: return 0
queue = [(root,1)]
while queue:
node, level = queue.pop(0)
if not node.left and not node.right: return level
if node.left: queue.append((node.left, level+1))
if node.right: queue.append((node.right, level+1))
该博客介绍了一种使用层次遍历(广度优先搜索)解决寻找二叉树最小深度的方法。通过创建一个队列并同时保存节点及其层级,一旦遇到没有左右子节点的叶节点,即返回其层级作为最小深度。
1972

被折叠的 条评论
为什么被折叠?



