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: void dfs(TreeNode *root, int &Min, int step){ if(root == NULL) return; if(root->left == NULL && root->right == NULL){ if(Min>step) Min=step; return; } dfs(root->left, Min, step+1); dfs(root->right, Min, step+1); } int minDepth(TreeNode *root) { if(root == NULL) return 0; int Min = 999999; dfs(root, Min, 1); return Min; } };