Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
BFS:
class Solution {
public:
int maxDepth(TreeNode* root) {
if(root==NULL) return 0;
queue<TreeNode*>q;
q.push(root);
int count=0;
while(!q.empty())
{
int n=q.size();
count++;
while(n--)
{
TreeNode* tmp=q.front();
q.pop();
if(tmp->left) q.push(tmp->left);
if(tmp->right) q.push(tmp->right);
}
}
return count;
}
};
DFS:
class Solution {
public:
int maxDepth(TreeNode* root) {
return root?max(maxDepth(root->left),maxDepth(root->right))+1:0;
}
};