LeetCode 102
2024-08-26 08:51:20
方法一:(迭代)
/**
* 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
{
public:
vector<vector<int>> levelOrder(TreeNode* root)
{
vector<vector<int>> v;
if(root == NULL) return v; queue<TreeNode *> q;
q.push(root); TreeNode *curNode = NULL;
vector<int> a;
while(!q.empty())
{
int len = q.size();
for(size_t i = ; i < len; i++)
{
curNode = q.front(); q.pop();
a.push_back(curNode->val);
if(curNode->left != NULL) q.push(curNode->left);
if(curNode->right != NULL) q.push(curNode->right);
}
v.push_back(a);
a.clear();
} return v;
}
};
方法二:(递归)
class Solution
{
public:
vector<vector<int>> levelOrder(TreeNode* root)
{
vector<vector<int>> v;
levelOrderHelp(root, , v);
return v;
} void levelOrderHelp(TreeNode *root, int level, vector<vector<int>>& v)
{
if(root == NULL) return; // 注意
if(level >= v.size()) v.push_back(vector<int>()); v[level].push_back(root->val);
levelOrderHelp(root->left, level + , v);
levelOrderHelp(root->right, level + , v);
}
};
最新文章
- 利用php比较精确的统计在线人数的办法
- python post
- 使用Gson送解析Json格式
- block捕获自动变量和对象
- bat批量去除文件首行和合并到文件
- pc端有弹出层 并有滚动的时候遇到的问题以及解决
- 优化:代码移动code motion
- C语言库函数大全及应用实例二
- js根据IP地址判断城市
- JSON反序列化实体类
- JS 部分常见循环、分支、嵌套练习
- java知识点整理
- DevOps之三 Git的安装与配置
- C#代码使用Process类调用SWFTools工具
- 微信小程序没有返回按钮怎么办?微信小程序左上角返回按钮怎么调出来?
- Python——封装
- 搭建vsf
- day17递归函数(二分法查找)
- 开通blog,记录学习历程
- npm WARN React-native@0.35.0 requires a peer of react@~15.3.1 but none was installed.