【Day-27慢就是快】代码随想录-二叉树-二叉树的最小深度

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点。

——————————————————————————————————

1. 递归法

确定单层递归的逻辑:

与最大深度有所不同,最小指的是根节点到叶子节点最小距离。

【Day-27慢就是快】代码随想录-二叉树-二叉树的最小深度_第1张图片

若左子树为空,最小深度为1+右子树深度

若右子树为空,最小深度是1+左子树深度

两数都不为空,左右子树深度最小值+1

【Day-27慢就是快】代码随想录-二叉树-二叉树的最小深度_第2张图片

2. 迭代法

仍然是使用层序遍历方法。

当左右孩子都为空时,才算遍历到最低点。

遇到的第一个叶子节点所在的层数就是最小深度。

【Day-27慢就是快】代码随想录-二叉树-二叉树的最小深度_第3张图片

你可能感兴趣的:(代码随想录,c++,算法,数据结构)