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.
Note: A leaf is a node with no children.
Example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its depth = 3.
/*两种解法,一种DFS,一种BFS*/
/*思路来自LeetCode讨论区*/
/*DFS*/
class Solution {
public:
int maxDepth(TreeNode* root) {
if (root == NULL) return 0;
return 1 + max(maxDepth(root->left),maxDepth(root->right));
}
};
/*BFS*/
class Solution {
public:
int maxDepth(TreeNode* root) {
if( !root ) return 0;
queue <TreeNode *> q;
q.push(root);
int res = 0;
while(!q.empty())
{
res++;
for(int i=0, n = q.size(); i < n; i++){
TreeNode *p = q.front();
q.pop();
if(p->left) q.push(p->left);
if(p->right) q.push(p->right);
}
}
return res;
}
};