题目源自于leetcode104 二叉树最大深度
给定一个二叉树 root
,返回其最大深度。
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。
前几篇博客用的都是dfs,即优先考虑深度。而bfs则是优先考虑当前层级上的节点,而不是深入到下一层级。Breadth就是宽度
dfs借用递归实现前中后序遍历很方便
bfs可以借用vector实现,计算深度很方便
int maxDepth(TreeNode* root) {
vector<TreeNode*> que;
int result = 0;
que.push_back(root);
while (!que.empty()) {
vector<TreeNode*> temp;
for (auto node : que) {
if (node->left!=nullptr)
temp.push_back(node->left);
if (!node->right)
temp.push_back(node->right);
}
que = temp;
result++;
}
return result;
}