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