/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int min(int i,int j){
    if(i>j) return j;
    return i;
}

int minDepth(struct TreeNode* root) {
    if(!root) return 0;
    int a=INT_MAX,b=INT_MAX;
    if(!root->left&&!root->right) return 1;
    if(root->left) a=minDepth(root->left)+1;
    if(root->right) b=minDepth(root->right)+1;
    return min(a,b);
}