Minimum Depth of Binary Tree
/** * 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 res = INT_MAX; void dfs(TreeNode *root,int depth){ if(!root||depth>=res) return;//剪枝,当前搜索深度大于最小值就不要继续往下搜了 if(!root->left &&!root->right){ res = min(res,depth+1); return ; } dfs(root->left,depth+1); dfs(root->right,depth+1); return ; } int minDepth(TreeNode *root) { if(!root) return 0; dfs(root,0); return res; } };