111. Minimum Depth of Binary Tree

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) {

        return helper(root);
        
    }
    
    private int helper(TreeNode node){
        
        if(node == null)    return 0;
        
        int left = helper(node.left); 
        int right = helper(node.right);
        
        //{ 1,2} should reurn 2, not 1
        if(left == 0)   return right + 1;
        if(right == 0)   return left + 1;
        
        return Math.min(left, right) + 1;
        
    }
}

 

posted @ 2013-09-23 03:45  LEDYC  阅读(156)  评论(0)    收藏  举报