Saturday, August 31, 2013

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
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int minDepth(TreeNode *root) {
          if(!root)
             return 0;
          int left  = minDepth(root->left);
          int right  = minDepth(root->right);
          if((left  == 0 && right > 0) || (right  == 0 && left > 0))
            return 1  + max(left, right);
         return 1 + min(left, right);
    }
};


No comments:

Post a Comment