mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-11 04:54:51 +08:00
Merge pull request #105 from Joshua-Lu/patch-22
添加 0111.二叉树的最小深度 Java版本 递归与迭代
This commit is contained in:
@ -194,17 +194,61 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
Java:
|
Java:
|
||||||
```java
|
|
||||||
class Solution {
|
|
||||||
public int minDepth(TreeNode root) {
|
|
||||||
if (root == null) return 0;
|
|
||||||
int leftDeep = minDepth(root.left);
|
|
||||||
int rightDeep = minDepth(root.right);
|
|
||||||
|
|
||||||
if (root.left == null && root.right != null) return 1+rightDeep;
|
|
||||||
if (root.left != null && root.right == null) return 1+leftDeep;
|
|
||||||
|
|
||||||
return Math.min(leftDeep,rightDeep)+1;
|
```Java
|
||||||
|
class Solution {
|
||||||
|
/**
|
||||||
|
* 递归法,相比求MaxDepth要复杂点
|
||||||
|
* 因为最小深度是从根节点到最近**叶子节点**的最短路径上的节点数量
|
||||||
|
*/
|
||||||
|
public int minDepth(TreeNode root) {
|
||||||
|
if (root == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int leftDepth = minDepth(root.left);
|
||||||
|
int rightDepth = minDepth(root.right);
|
||||||
|
if (root.left == null) {
|
||||||
|
return rightDepth + 1;
|
||||||
|
}
|
||||||
|
if (root.right == null) {
|
||||||
|
return leftDepth + 1;
|
||||||
|
}
|
||||||
|
// 左右结点都不为null
|
||||||
|
return Math.min(leftDepth, rightDepth) + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```Java
|
||||||
|
class Solution {
|
||||||
|
/**
|
||||||
|
* 迭代法,层序遍历
|
||||||
|
*/
|
||||||
|
public int minDepth(TreeNode root) {
|
||||||
|
if (root == null) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
Deque<TreeNode> deque = new LinkedList<>();
|
||||||
|
deque.offer(root);
|
||||||
|
int depth = 0;
|
||||||
|
while (!deque.isEmpty()) {
|
||||||
|
int size = deque.size();
|
||||||
|
depth++;
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
TreeNode poll = deque.poll();
|
||||||
|
if (poll.left == null && poll.right == null) {
|
||||||
|
// 是叶子结点,直接返回depth,因为从上往下遍历,所以该值就是最小值
|
||||||
|
return depth;
|
||||||
|
}
|
||||||
|
if (poll.left != null) {
|
||||||
|
deque.offer(poll.left);
|
||||||
|
}
|
||||||
|
if (poll.right != null) {
|
||||||
|
deque.offer(poll.right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return depth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -264,4 +308,4 @@ Go:
|
|||||||
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
||||||
* B站视频:[代码随想录](https://space.bilibili.com/525438321)
|
* B站视频:[代码随想录](https://space.bilibili.com/525438321)
|
||||||
* 知识星球:[代码随想录](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)
|
* 知识星球:[代码随想录](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)
|
||||||
<div align="center"><img src=../pics/公众号.png width=450 alt=> </img></div>
|
<div align="center"><img src=../pics/公众号.png width=450 alt=> </img></div>
|
||||||
|
Reference in New Issue
Block a user