|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
二叉树的层序遍历
题目:
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例1:
- 二叉树:[3,9,20,null,null,15,7],
复制代码
返回其层次遍历的结果:
代码:
- 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();
-
- //push_back()->在数组最后添加一个元素
- ret.push_back(vector <int> ());
-
- for (int i = 1; i <= currentLevelSize; ++i) {
- //队列
- //front()->返回第一个元素
- //pop()->从队头移除第一个元素
- auto node = q.front(); q.pop();
- //vector back()->返回当前vector容器中末尾元素的引用
- ret.back().push_back(node->val);
- //插入左孩子右孩子
- if (node->left) q.push(node->left);
- if (node->right) q.push(node->right);
- }
- }
-
- return ret;
- }
- };
复制代码
https://leetcode-cn.com/problems ... -leetcode-solution/
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems ... vel-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
|
|