103. 二叉树的锯齿形层次遍历

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

例如:

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

    3
/ \
9 20
/ \
15 7

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

[

[3],

[20,9],

[15,7]

]


class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> res = new ArrayList<>();
traversal(root, res, 0);
return res;
} private void traversal(TreeNode root, List<List<Integer>> res, int level) {
if (root == null) {
return;
} if (res.size() == level) {
res.add(new ArrayList<Integer>());
} if ((level & 1) == 1){
res.get(level).add(0, root.val);
} else {
res.get(level).add(root.val);
} traversal(root.left, res, level + 1);
traversal(root.right, res, level + 1);
}
}

最新文章

  1. Struts2基础数据校验和框架校验
  2. Excel 如何按条件计数和按条件求和(如按月求和)
  3. whereis命令
  4. 关于SOAP
  5. UI进阶 动画
  6. 多核处理器基础SMP&amp;AMP&amp;BMP
  7. 每天一个Linux命令(13)--less命令
  8. 201521123111《Java程序设计》第7周学习总结
  9. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十一)redis密码设置、安全设置
  10. MySQL的insert ignore与replace into不同
  11. 使用筛选器特性标记方法解决webapi 跨域问题
  12. 【HDU 2063】过山车(二分图最大匹配模板题)
  13. ISLR系列:(2)分类 Logistic Regression &amp; LDA &amp; QDA &amp; KNN
  14. 第五节,python基本语法
  15. bpmn-js起步
  16. python 12 模块与包
  17. 写了2年python,知道 if __name__ == &#39;__main__&#39; 什么意思吗?
  18. [原]Jenkins(十二)---jenkins管理员用户无法登陆解决办法Access Denied
  19. a demo for how to use QThread
  20. 解决Ubuntu16的风扇高速旋转问题(双显卡)

热门文章

  1. BufferedInputStream:字节缓冲输入流
  2. HBuilderX 打包 uniapp 项目 图片路径不显示(不正确)
  3. [hdu3644 A Chocolate Manufacturer&#39;s Problem]模拟退火,简单多边形内最大圆
  4. SQLServer用with temptb AS临时表查询或者更新字段,将某个字段赋值成某个字段的值
  5. post请求导出表单。
  6. 使用gitHub和git进行团队合作开发
  7. Django之forms.Form
  8. 解决删除~/Library/Caches/CocoaPods/search_index.json重新pod search还是不起作用
  9. PAT-1064 Complete Binary Search Tree(完全二叉树)
  10. POJ1436