【前言】
今天是刷题打卡第48天!
早成者未必有成,晚达者未必不达。一起都还来得及,加油哦。
原题: 二叉树的层序遍历(BFS)
原题链接:力扣
示例:
代码执行:
class Solution { public: /** * * @param root TreeNode* * @return int整型vector<vector<>> */ vector<vector<int> > levelOrder(TreeNode* root) { // write code here queue<TreeNode*>q;//定义一个队列 if(root) q.push(root); vector<vector<int> >ans;//定义一个二维数组用于存放遍历结果 while(!q.empty()){//队列为空时停下来 int n = q.size();//注意哦,n不能放在循环外边,队列中的元素是在变化的 vector<int>tmp;//定义一维数组用于存放每一层的节点(注意一维数组定义的位置) for(int i = 0;i < n;i++){ TreeNode* t = q.front();//访问队首元素 q.pop();//队首元素出队 tmp.push_back(t->val);//将队首元素的值存放到该层的一维数组中 if(t->left)//左子节点入队 q.push(t->left); if(t->right)//右子节点入队 q.push(t->right); } ans.push_back(tmp);//将第一层的一维数组存放二维数组中 } return ans; } };
结语
今天是刷题打卡第48天!
加油吧少年。