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.
思路:注意min和max的区别。max取两个分支的最大。所以如果一个分支是null,另一个分支是leaf。它肯定会取leaf,满足题目条件。
如果min也是直接取两个分支的最小,会出现一种错误的现在。一个分支是null,另一个分支是leaf,它取的不是leaf,而题目要都是depth,所以不对。因此要增加两个if来判断是不是leaf。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public int minDepth(TreeNode root) { if(root==null) { return 0; } if(root.left==null) { return 1+minDepth(root.right); } if(root.right==null) { return 1+minDepth(root.left); } return 1+Math.min(minDepth(root.left),minDepth(root.right)); }}