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