显然BFS可以直接解决,如果要用递归可以直接解决
class Solution {
public:
int maxDepth(TreeNode* root) {
if(root==NULL) return 0;
return max(maxDepth(root->left),maxDepth(root->right))+1;
}
};
显然BFS也能解决,能不能像上面一样一行代码解决呢,答案是不行的,注意这个返利
这里树的最小高度不是1,而是2,因为1不是叶子节点,所以要加上判断条件。
class Solution {
public:
int minDepth(TreeNode* root) {
if(root==NULL) return 0;
else if(root->left==NULL&&root->right==NULL) return 1;
else if(root->left==NULL) return minDepth(root->right)+1;
else if(root->right==NULL) return minDepth(root->left)+1;
else return min(minDepth(root->left),minDepth(root->right))+1;
}
};