失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > LeetCode解析------111. 二叉树的最小深度-深度优先搜索

LeetCode解析------111. 二叉树的最小深度-深度优先搜索

时间:2020-10-22 09:42:16

相关推荐

LeetCode解析------111. 二叉树的最小深度-深度优先搜索

题目:

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

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

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

示例:

给定二叉树 [3,9,20,null,null,15,7],

3

/ \

9 20

/ \

15 7

返回它的最小深度 2.

简单介绍:

题目:二叉树的最小深度

题目难度:简单

使用语言:JAVA

这道题来自leetcode题库的深度优先搜索标签。

解题思路:

主要解法:递归。

**递归出口很容易可以想得到。

观察一下,发现情况可以分为3种。

1.左单叶树,统计右子树长度即可

2.右单叶树,统计左子树长度即可

3.双子叶树,比较左右子树长度,取最小。

**

数据结构:

要实现对数据的操作,我们要先明确存储数据的数据结构。

该题的数据结构的作用:

1.无需数据结构

算法:

既然明确了我们的数据结构,我们就可以开始我们的算法分析了。

1.第一步,初始化工作,设置递归出口。

2.第二步,分情况实现代码。

代码部分:

/*** Definition for a binary tree node.* public class TreeNode {*int val;*TreeNode left;*TreeNode right;*TreeNode(int x) { val = x; }* }*/public class Solution {public int minDepth(TreeNode root) {if(root==null) return 0;if(root.left==null) return minDepth(root.right)+1;if(root.right==null) return minDepth(root.left)+1;int left=1;int right=1;left=left+minDepth(root.left);right=right+minDepth(root.right);return left<right?left:right;}}

时间、空间复杂度:

结语:

晚安!晚安!晚安!晚安!晚安!晚安!晚安!晚安!晚安!晚安!晚安!

如果觉得《LeetCode解析------111. 二叉树的最小深度-深度优先搜索》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。