从零开始的LeetCode刷题日记:102.二叉树的层序遍历
一.相关链接
题目链接:102.二叉树的层序遍历
二.心得体会
这道题也是二叉树题目的基础。层序遍历的思路其实非常简单,首先是要在出队列时把节点的左右孩子依次压进队列,其次就是要有个计数器来记录下一层访问的节点数量。代码还是要多写多练,才能牢牢记住。
三.代码
class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> ans;queue<TreeNode*> que;if(root) que.push(root);while(!que.empty()){vector<int> vec;int size = que.size();for(int i=0;i<size;i++) { //要按照每一层的节点数量来访问TreeNode* node = que.front();que.pop();if(node->left!=NULL) que.push(node->left);//访问完就把左右节点压进队列if(node->right!=NULL) que.push(node->right);vec.push_back(node->val);}ans.push_back(vec);}return ans;}
};