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.
Have you been asked this question in an interview?
/** * 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; } } }
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5104422.html,如需转载请自行联系原作者