树的高度是从根节点到叶子结点的路径,因此树的高度和深度一样
节点的高度就是从当前节点到叶子节点的路径
节点的深度就是从根节点到当前节点的路径
双重递归的求法:
class Solution {
public:
//递归写法
int maxDepth(TreeNode* root) {
if(root==NULL){
return 0;
}
int l=maxDepth(root->left)+1;
int r=maxDepth(root->right)+1;
return l>r?l:r;
}
};
class Solution {
public:
//递归写法
int maxDepth(TreeNode* root) {
if(root==NULL){
return 0;
}
int l=maxDepth(root->left);
int r=maxDepth(root->right);
return l>r?l+1:r+1;
}
};
当求某个节点深度的时候就把if的条件换成当前节点,从根到当前节点的递归最大路径
当求某个节点高度的时候if的条件不变,root节点换成当前节点就行!