
广度优先搜索(辅助队列)思路:







以此类推…


class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector <vector <int>> ret;//二维数组
if (!root) {
return ret;
}
queue <TreeNode*> q;//存二叉树的队列 //辅助队列
q.push(root);//根结点入队列
while (!q.empty()) {
int currentLevelSize = q.size();//二叉树尺寸 返回 queue 中元素的个数。
ret.push_back(vector <int> ());//vector <int> ()空的一维数组
for (int i = 1; i <= currentLevelSize; ++i) {
auto node = q.front(); q.pop();
ret.back().push_back(node->val);//第i层的数值获取
if (node->left) q.push(node->left);//若左结点存在 则左结点入队列 第i+1层数值入队列
if (node->right) q.push(node->right);
}
}
return ret;
}
};

这篇博客介绍了如何运用广度优先搜索(BFS)策略来遍历二叉树,通过辅助队列实现层次遍历。代码示例展示了从根节点开始,逐层添加节点到结果数组,同时处理左右子节点的过程。这种方法可以有效地按层次获取二叉树的所有节点值。
广度优先+辅助队列&spm=1001.2101.3001.5002&articleId=113435481&d=1&t=3&u=8d67e1317d1e4d14b151be375f57c309)
1142

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



