只刷剑指不行,宝宝我还要刷点别的,啊啊啊,实习了一天头好疼,但是不行,我要坚持坚持坚持!
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.
思路:递归!如果节点为空,返回深度;节点两个子树均为空,返回当前深度加1;左子树为空,返回右子树最小深度;右子树为空,返回左子树最小深度;两子树均为空,返回两子树中较小树的深度。
源码:
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution
{
int depth = 0;
public int run(TreeNode root)
{
return dep(root, depth);
}
private int dep (TreeNode root, int n)
{
if (root == null) return n;
else
{
n++;
if (root.left == null && root.right == null ) return n;
else if (root.left == null)
return dep(root.right, n);
else if (root.right == null)
return dep(root.left,n);
else
return Math.min(dep(root.left, n), dep(root.right, n));
}
}
}