Я пытаюсь повысить эффективность своего кода и пытаюсь решить проблему дерева минимальной глубины, используя метод рекурсии, но я не уверен, что это лучший способ решения проблемы.Я получил быстрее, чем 6% кодеров на LeetCode, но не могу улучшить его больше, чем это.
int minDepth(struct TreeNode* root) {
if(root == NULL){
return 0;
}
if(root->left == NULL && root->right == NULL){
return 1;
}
if(!root->left){
return minDepth(root->right) + 1;
}
if(!root->right){
return minDepth(root->left)+1;
}
if(minDepth(root->right) > minDepth(root->left)){
return minDepth(root->left) + 1;
}else{
return minDepth(root->right) + 1;
}
}