【剑指Offer】面试题32 - II. 从上到下打印二叉树 II
2024-09-02 23:47:55
题目
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
给定二叉树: [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;
}
};
最新文章
- Hive&;Hbase
- CSS3.0盒模型display:box;的使用
- 如何离线下载Chrome的安装包
- 学习 Message(5): 关于 TApplicationEvents.OnMessage 的第二个参数 可以屏蔽 TWebBrowser右键菜单:
- vb6中webbrowser控件树转换备忘
- 如何面试程序员 zhuan zai
- SQL 集合(笔记)
- 解决ehcache的UpdateChecker问题
- Solaris 安装JDK
- react.js 从零开始(三)JSX 语法及特点介绍
- ArrayList遍历的同时删除--- 删除还是用迭代器的比较好,其它的都会有问题.
- MongoDB监控
- Intellij IDEA 安装和配置jrebel进行项目的热部署
- spring jdbc踩坑日记,new JdbcTemplate 为null导致UserDao一直为null
- haproxy监控页面添加及参数简介(转)
- redis的spring的xml配置
- Nest.js 守卫
- 超简单的实现wordcount
- openstry lua redis实现负载均衡
- 20155201 网络攻防技术 实验五 MSF基础应用