题目描述:
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.
返回一个二叉树的最短深度,即从根节点到叶子节点的所有路径中中,包含最少节点的那条路径上的节点个数
思路解析:
三种情况:
- 左右子树都为0:返回0
- 只有一个子树为0:返回非空子树的深度
- 左右子树都不为0:返回最小值
代码:
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int run(TreeNode root) {
if(root==null){
return 0;
}
int i=run(root.left);
int j=run(root.right);
return (i==0||j==0)?i+j+1:Math.min(i,j)+1;
}
}