方法一:(迭代)

/**
* 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);
}
};

最新文章

  1. 利用php比较精确的统计在线人数的办法
  2. python post
  3. 使用Gson送解析Json格式
  4. block捕获自动变量和对象
  5. bat批量去除文件首行和合并到文件
  6. pc端有弹出层 并有滚动的时候遇到的问题以及解决
  7. 优化:代码移动code motion
  8. C语言库函数大全及应用实例二
  9. js根据IP地址判断城市
  10. JSON反序列化实体类
  11. JS 部分常见循环、分支、嵌套练习
  12. java知识点整理
  13. DevOps之三 Git的安装与配置
  14. C#代码使用Process类调用SWFTools工具
  15. 微信小程序没有返回按钮怎么办?微信小程序左上角返回按钮怎么调出来?
  16. Python——封装
  17. 搭建vsf
  18. day17递归函数(二分法查找)
  19. 开通blog,记录学习历程
  20. npm WARN React-native@0.35.0 requires a peer of react@~15.3.1 but none was installed.

热门文章

  1. 前端优化之图片延迟加载(lazyload.js)
  2. JS学习笔记--轮播图效果
  3. Android开发--Adapter的应用
  4. javascript 中继承实现方式归纳
  5. 【工具】【电子设计】超屌的 fritzing 新建元件
  6. 394. Decode String
  7. Promise
  8. jquery tab 插件
  9. onethink导出excel
  10. Mybatis中#{}和${}传参的区别