Thursday, January 15, 2015

Minimum Depth of Binary Tree (LeetCode Tree)

Question: 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.

Idea: Recursion. If the node is a leaf, return the result, otherwise return the accumulated depth from the children. I thought the code can be more clean if apply some math tricks, however, it will be much harder to be understood. So I just implement with the simplest logic. The time complexity is the same.

Time: O(n) Space: O(lgn)

Code:
 public class Solution {  
   public int minDepth(TreeNode root) {  
     if(root==null)  
       return 0;  
     if(root.left==null&&root.right==null)  
       return 1;  
     if(root.left==null)  
       return minDepth(root.right)+1;  
     if(root.right==null)  
       return minDepth(root.left)+1;  
     return Math.min(minDepth(root.left),minDepth(root.right))+1;  
   }  
 }  

No comments:

Post a Comment