问题描述

请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
例如:
给定二叉树: [3,9,20,null,null,15,7], 3
/ \
9 20
/ \
15 7
返回其层次遍历结果: [
[3],
[20,9],
[15,7]
]
  提示: 节点总数 <= 1000

代码

/**
* 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>> ans;
if(!root)return ans;
queue<TreeNode*>q;
q.push(root);
int flag = 0;
while(!q.empty())
{
int n = q.size();
vector<int> tmp;
for(int i = 0; i < n; ++i)
{
TreeNode* node = q.front();
q.pop();
tmp.push_back(node->val);
if(node->left)q.push(node->left);
if(node->right)q.push(node->right);
}
if(flag++ % 2 == 1)
reverse(tmp.begin(),tmp.end());
ans.push_back(tmp);
}
return ans;
}
};

结果:

执行用时 :8 ms, 在所有 C++ 提交中击败了55.88%的用户
内存消耗 :12.6 MB, 在所有 C++ 提交中击败了100.00%的用户

最新文章

  1. Spring 01基础
  2. [LintCode] Maximum Depth of Binary Tree 二叉树的最大深度
  3. python27 + windows7 报错 No module named requests
  4. Java的整个字符串的结束索引在最后一个字符之外
  5. 10月23日上午PHP数组
  6. Android开发切换host应用
  7. PHP采集程序中的常用函数
  8. 编写高质量代码改善C#程序的157个建议
  9. HDU 5638 拓扑排序+优先队列
  10. 如何导入ShareSDK的sample
  11. Power Designer - 反向获取数据库物理模型时Unable to list the users 异常
  12. 为GridView中的DropDownList赋值
  13. windows完全支持C++11的轻量级编译器(官网MinGW和非官方的MinGW-builds)
  14. 你必须知道的10个Python第三库
  15. C#匿名类型和动态解析减少定义传输类模板
  16. 封装poi导入篇
  17. Mysql数据库进阶之(分表分库,主从分离)
  18. c++ 中的符号与关键字
  19. 本地服务器能ping通,但是ssh及各种端口都访问不到---待整理
  20. Image与Bitmap的区别及相互转换

热门文章

  1. 数据脱敏 t-closeness介绍与实现
  2. 小迪安全 Web安全 基础入门 - 第五天 - 资产架构&amp;端口&amp;应用&amp;CDN&amp;WAF&amp;站库分离&amp;负载均衡
  3. 使用ANTLR解析CSV和JSON
  4. Python sys模块 os模块、OS.open() | open() | OS._exit() | sys.exit() | exit()
  5. ubantu电脑无法开机修复
  6. JAVA结合 JSON Web Token(JWT) 工具类
  7. JAVA在JDK1.8中Stream流的使用
  8. js-fn函数返回一个引用变量的细节
  9. 【九度OJ】题目1181:遍历链表 解题报告
  10. 第十个知识点:RSA和强RSA问题有什么区别?