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.
My code of C++, Depth-first-search and Breadth-first-search
Depth-first-search
======
Only one line code.
int maxDepth(TreeNode *root)
{
return root == NULL ? 0 : max(maxDepth(root -> left), maxDepth(root -> right)) + 1;
}
Breadth-first-search
======
Calculate the count of the last level.
int maxDepth(TreeNode *root)
{
if(root == NULL)
return 0;
int res = 0;
queue<TreeNode *> q;
q.push(root);
while(!q.empty())
{
++ res;
for(int i = 0, n = q.size(); i < n; ++ i)
{
TreeNode *p = q.front();
q.pop();
if(p -> left != NULL)
q.push(p -> left);
if(p -> right != NULL)
q.push(p -> right);
}
}
return res;
}
本文介绍了使用两种不同方法——深度优先搜索(DFS)和广度优先搜索(BFS)来解决寻找二叉树最大深度的问题。通过简洁的C++代码实现,深度优先搜索采用递归方式,而广度优先搜索则利用队列进行层级遍历。
1万+

被折叠的 条评论
为什么被折叠?



