104. 二叉树的最大深度
一、后序遍历
后序为求树的高度(左右中)叶子结点的高度为1,根节点的高度即为树的深度。
class Solution {
public:
int maxDepth(TreeNode* root) {
if(root==NULL)return 0;
int leftDepth = maxDepth(root->left);
int rightDepth = maxDepth(root->right);
return 1+max(leftDepth,rightDepth);
}
};
二、前序遍历
class Solution {
public:
void dfs(TreeNode* Node)
{
if(Node==NULL)return;
depth++;
m = max(m,depth);
dfs(Node->left);
dfs(Node->right);
depth--;
}
int maxDepth(TreeNode* root) {
if(root==NULL)return 0;
dfs(root);
return m;
}
int depth=0;
int m = INT_MIN;
};