class Solution {
public:
int DFS(TreeNode* root){
if(!root) return 0;
// 先由根結點往下伸
int left_subtree = DFS(root->left);
int right_subtree = DFS(root->right);
// 跟110不同的是,節點0不能算 => 要先確認他不是空節點,再算min
if (!root->left) return right_subtree + 1; // 如果 左子樹為空:只能走右子樹(return right + 1)
if (!root->right) return left_subtree + 1; // 如果 右子樹為空:只能走左子樹(return left + 1)
return min(left_subtree, right_subtree) + 1; // 如果 左右子樹都存在
}
int minDepth(TreeNode* root) {
return DFS(root);
}
};