每日一题;
今天做的还是二叉树,求二叉树最小深度,貌似没有什么难度,需要注意的就两点:
1、递归的出口条件,开始以为是叶子节点,结果报错,因为如果只有一个节点这样容易返回0;所以出口要考虑一个节点的情况;
2、递归的过程。
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; }
* }
*/
public class Solution {
public int minDepth(TreeNode root) {
TreeNode treeNode = root;
if(treeNode == null){
return 0;
}
if(treeNode.left==null && treeNode.right == null){
return 1;
}
if(treeNode.right == null){
return minDepth(treeNode.left)+1;
}
if(treeNode.left == null){
return minDepth(treeNode.right)+1;
}
int left = minDepth(treeNode.left);
int right = minDepth(treeNode.right);
return left<right?left+1:right+1;
}
}