关于Leetcode上二叉树及n叉树的层序遍历
层序遍历二叉树,顾名思义,就是从左到右一层一层的去遍历二叉树。
通常需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归的逻辑。而这种层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上。
下面上题目:
题面及样例输入输出:
题目来源:leetcode(力扣)
题目链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/
源代码及注释:
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
queue<TreeNode*>que; //定义队列
vector<vector<int>>res;
if(root != nullptr)//空指针直接返回
que.push(root);
while(!que.empty())//队列为空是终止条件
{
vector