开始记录自己练习算法的过程,积累一些东西,通过学习大神们的思路,训练自己的算法思维。
在知乎上看了好多推荐的帖子之后,决定先从leetcode开始,用Java实现。
第(1)题 minimum-depth-of-binary-tree
知识点:树
题述:Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
大意就是求一棵二叉树的最短的深度。
思路:求一棵二叉树的最短深度,就需要分别求它左,右子树的最短深度。因此,选择递归。
代码如下:
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
```
```
publicclassSolution {publicintrun(TreeNode root) {
if(root == null){
return0;
}
int left = run(root.left);
int right = run(root.right);
if(left == 0){
return1+right;
}elseif(right == 0){
return1+left;
}else{
return Math.min(1+left,1+right);
}
}
}
开始记录自己练习算法的过程,积累一些东西,通过学习大神们的思路,训练自己的算法思维。在知乎上看了好多推荐的帖子之后,决定先从leetcode开始,用Java实现。第(1)题 minimum-depth-of-binary-tree知识点:树题述:Given a binary tree, find its minimum depth.The minimum depth is the numbe