LeetCode - 111.二叉树的最小深度(递归)1 (需要补充迭代的代码)
发布日期:2021-05-07 21:18:08 浏览次数:22 分类:精选文章

本文共 747 字,大约阅读时间需要 2 分钟。

题目:

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

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

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

在这里插入图片描述
输入:root = [3,9,20,null,null,15,7]
输出:2

方法一: 递归

(需要注意全是右子树的特例需要进行判断)

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。,注意是叶子节点。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码:

class Solution {       public int minDepth(TreeNode root) {           if(root == null) return 0;        //这道题递归条件里分为三种情况        //1.左孩子和有孩子都为空的情况,说明到达了叶子节点,直接返回1即可        if(root.left == null && root.right == null) return 1;        //2.如果左孩子和由孩子其中一个为空,那么需要返回比较大的那个孩子的深度                int m1 = minDepth(root.left);        int m2 = minDepth(root.right);        //这里其中一个节点为空,说明m1和m2有一个必然为0,所以可以返回m1 + m2 + 1;        if(root.left == null || root.right == null) return m1 + m2 + 1;                //3.最后一种情况,也就是左右孩子都不为空,返回最小深度+1即可        return Math.min(m1,m2) + 1;     }}
上一篇:LeetCode - 50. Pow(x,n) 计算 x 的 n 次幂函数(递归,分治的思想)
下一篇:LeetCode - 104.二叉树的最大深度(递归)1

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年03月30日 06时29分33秒