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) { if (root == null){ return 0; } return helper(root); } //这个题目和求最大(最小深度)不一样的是要走到叶子节点才算行,也就说要到了叶子节点才OK //最開始的时候採取了(root == null)的推断,报错,是由于对根节点的处理中觉得是求最大的深度。而最小的深度实际是到了 //叶子节点之后才算行 int helper(TreeNode root) { if (root.left == null && root.right == null) { return 1; } if (root.left == null) { return helper(root.right) + 1; } if (root.right == null) { return helper(root.left) + 1; } else { return Math.min(helper(root.left),helper(root.right)) + 1; } } }