给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

例如:

给定二叉树 [3,9,20,null,null,15,7],

3 / \ 9 20 / \ 15 7

返回锯齿形层次遍历如下:

[ [3], [20,9], [15,7] ]

 class Solution {
public:
vector<vector<int> > zigzagLevelOrder(TreeNode* root)
{
vector<vector<int> > res;
if(root == NULL)
return res;
queue<TreeNode*> q;
q.push(root);
int cnt = 0;
while(!q.empty())
{
int size = q.size();
vector<int> temp;
for(int i = 0; i < size; i++)
{
TreeNode *node = q.front();
q.pop();
temp.push_back(node ->val);
if(node ->left)
q.push(node ->left);
if(node ->right)
q.push(node ->right);
}
if((cnt & 1) == 1)
{
reverse(temp.begin(), temp.end());
}
res.push_back(temp);
cnt++;
}
return res;
}
};

最新文章

  1. jQuery核心之DOM操作的常用方法
  2. 一台服务器发布多个tomcat并注册服务名办法
  3. FineUI Grid控件右键菜单的实现
  4. 64位linux安装android sdk的问题
  5. em与px之间的换算
  6. Activity的跳转与传值(转载)
  7. OD: Kernel Exploit - 1
  8. Spring jdbcTemplate + EasyUI 物理分页
  9. JavaScript高级(01)
  10. BZOJ-6-2460: [BeiJing2011]元素-线性基
  11. SQL 一对多联表查询最大值
  12. 读高性能JavaScript编程 第一章
  13. haproxy 让后端服务器记录用户的真是IP地址(记录在header头里)
  14. windows rails new demo时候出错Make sure that `gem install mysql2 -v &#39;0.3.15&#39;` succeeds before bundling.
  15. GREENPLUM简介
  16. Java多线程学习(六)Lock锁的使用
  17. 【贪心】【multiset】Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) C. Naming Company
  18. httpclient 优化
  19. Qt 学习之路 2(40):隐式数据共享
  20. phpMyAdmin关于PHP 5.5+ is required. Currently installed version is: 5.4.16问题

热门文章

  1. 「APIO 2019」奇怪装置
  2. [WPF自定义控件库] 让Form在加载后自动获得焦点
  3. 如何将制定目录加入到PYTHONPATH
  4. 杂项-关于strlen()的使用
  5. (一)phonegap自学---不会java也会写原生app
  6. [转]C#的扩展方法解说
  7. DataTime 和 时间转化
  8. leetcode-第5周双周赛-1136平行课程
  9. 淼一淼A+B problem
  10. zabbix--------配置邮件报警功能---服务器上配置---------