Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). (Easy)

For example:
Given binary tree [3,9,20,null,null,15,7],

    3
/ \
9 20
/ \
15 7

return its level order traversal as:

[
[3],
[9,20],
[15,7]
]

分析:

层序遍历,就是BFS的思路,利用队列把每一行的节点存进去,然后一行一行读出。

注意每次循环用读取size的方式确定这一行到哪里结束。

代码:

 /**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
private:
vector<vector<int>> result;
public:
vector<vector<int>> levelOrder(TreeNode* root) {
if (root == nullptr) {
return result;
}
queue<TreeNode* > que;
que.push(root);
while (!que.empty()) {
int sz = que.size();
vector<int> temp;
for (int i = ; i < sz; ++i) {
TreeNode* cur = que.front();
que.pop();
temp.push_back(cur -> val);
if (cur -> left != nullptr) {
que.push(cur -> left);
}
if (cur -> right != nullptr) {
que.push(cur -> right);
}
}
result.push_back(temp);
}
return result;
}
};

最新文章

  1. 拷贝excel里的内容转为JSON的js代码
  2. redis 中文字符显示
  3. OBject copy 和retain区别
  4. 代码-Weka的LinearRegression类
  5. 【分享】改变未来的九大算法[pdf][清晰扫描版]
  6. DDNS client on a Linux machine
  7. jmeter 登录并发 (此文章有待修改)
  8. ubuntu系统搭建以太坊私有链
  9. 有两组随机生成的(0~99999)Int32数据A和B,将A按顺序判断在B中是否存在并记录在Boolean型的C中
  10. Java环境变量,真的还有必要配吗?
  11. es6新增
  12. opencart3产品页调用upc/数量等信息
  13. 【dbdiff】数据库比对工具安装
  14. python单下划线与双下划线的区别
  15. Golang获得执行文件的当前路径
  16. (简单广搜) Ice Cave -- codeforces -- 540C
  17. Linux CentOS7系统中phpMyAdmin安装配置
  18. Boost.Asio 网络编程([译]Boost.Asio基本原理)
  19. LigerUI v1.2.4 LigerGrid 横轴滚动条
  20. Educational Codeforces Round 47 (Rated for Div. 2) :C. Annoying Present(等差求和)

热门文章

  1. MySQL与Oracle差异函数对比
  2. 浅谈java.util.ConcurrentModificationException(并发修改异常)
  3. UI2Code智能生成Flutter代码--整体设计篇
  4. 【大数据】Hadoop常用启动命令
  5. 2019.10.22 csp-s模拟测试82 反思总结
  6. 优化SQL之最快等价SQL
  7. centos部分网站无法访问问题的解决
  8. Hibernate_条件查询客户列表
  9. 注解1 --- JDK内置的三个基本注解 --- 技术搬运工(尚硅谷)
  10. Mac 电脑如何卸载 node