题解 | 二叉树的最小深度
二叉树的最小深度
https://www.nowcoder.com/practice/e08819cfdeb34985a8de9c4e6562e724
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型
*/
int ans = 1e7;
void dfs(TreeNode* head, int num)
{
if (!head) return; // 空节点直接返回
if(ans <= num)return;
if(!head->left && !head->right)
{
ans = min(ans, num + 1);
return;
}
dfs(head->left, num + 1);
dfs(head->right, num + 1);
}
int run(TreeNode* root) {
// write code here
if(!root)
{
return 0;
}
TreeNode* head = root;
dfs(head, 0);
return ans;
}
};

