102.二叉树的层序遍历

题目解析
这道题目是二叉树的层序遍历,我们可以使用BFS进行解答这道题目,我们可以利用队列进行,利用queue的机制,配合一个临时容器就可以解答这道题目。
代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> res;if (!root) return res; // 防止空指针queue<TreeNode* > q;q.push(root);while(!q.empty()){vector<int> tmp;int levelSize = q.size();//使用这个是因为随着队列的出队入队,size大小会发生改变for(int i = 0; i < levelSize; i++){TreeNode* node = q.front();q.pop();tmp.push_back(node->val);if(node->left){q.push(node->left);}if(node->right){q.push(node->right);}} res.push_back(tmp);}return res;}
};