题目

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

例如:

给定二叉树: [3,9,20,null,null,15,7],

    3
/ \
9 20
/ \
15 7

返回其层次遍历结果:

[
[3],
[9,20],
[15,7]
]
```  提示:
节点总数 <= 1000 ## 思路
在[【面试题32 - I. 从上到下打印二叉树】](https://www.cnblogs.com/galaxy-hao/p/12369503.html)基础上先计算当前层元素个数,然后依次遍历当前层每个元素,并将其下层节点放入队列中。 ### 代码
时间复杂度:O(n)
空间复杂度:O(n)
```cpp
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> res;
if (root) {
queue<TreeNode*> que;
que.push(root);
while (!que.empty()) {
int size = que.size(); //计算一层元素个数
vector<int> tmp;
while (size--) {
TreeNode *node = que.front();
que.pop();
tmp.push_back(node->val);
if (node->left) que.push(node->left);
if (node->right) que.push(node->right);
}
res.push_back(tmp);
}
}
return res;
}
};

最新文章

  1. Hive&amp;Hbase
  2. CSS3.0盒模型display:box;的使用
  3. 如何离线下载Chrome的安装包
  4. 学习 Message(5): 关于 TApplicationEvents.OnMessage 的第二个参数 可以屏蔽 TWebBrowser右键菜单:
  5. vb6中webbrowser控件树转换备忘
  6. 如何面试程序员 zhuan zai
  7. SQL 集合(笔记)
  8. 解决ehcache的UpdateChecker问题
  9. Solaris 安装JDK
  10. react.js 从零开始(三)JSX 语法及特点介绍
  11. ArrayList遍历的同时删除--- 删除还是用迭代器的比较好,其它的都会有问题.
  12. MongoDB监控
  13. Intellij IDEA 安装和配置jrebel进行项目的热部署
  14. spring jdbc踩坑日记,new JdbcTemplate 为null导致UserDao一直为null
  15. haproxy监控页面添加及参数简介(转)
  16. redis的spring的xml配置
  17. Nest.js 守卫
  18. 超简单的实现wordcount
  19. openstry lua redis实现负载均衡
  20. 20155201 网络攻防技术 实验五 MSF基础应用

热门文章

  1. VS Code 入门
  2. Linux命令:route命令
  3. H.264 中的Annex B格式和AVCC格式
  4. Redis 的使用
  5. 4.使用Redis+Flask维护动态代理池
  6. 118、Java中String类之取字符串长度
  7. 8年经验面试官详解 Java 面试秘诀
  8. SparkSQL 疫情Demo练习
  9. JuJu Beta Postmortem
  10. 常用的HBase命令