LeetCode 103 Binary Tree Zigzag Level Order Traversal
2015-11-26 11:00
489 查看
题目描述
Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).For example:
Given binary tree {3,9,20,#,#,15,7},
return its zigzag level order traversal as:
分析
参考LeetCode 102 Binary Tree Level Order Traversal只需要加入一个变量,判断行数,翻转list即可。
代码
[code] public static List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> result = new ArrayList<List<Integer>>(); if (root == null) { return result; } final TreeNode END = new TreeNode(0); Deque<TreeNode> deque = new LinkedList<TreeNode>(); List<Integer> level = new LinkedList<Integer>(); int count = 0; deque.add(root); deque.add(END); while (!deque.isEmpty()) { TreeNode p = deque.pop(); if (p == END) { if (count % 2 == 1) { Collections.reverse(level); } count++; result.add(new ArrayList<Integer>(level)); level.clear(); if (!deque.isEmpty()) { deque.add(END); } } else { level.add(p.val); if (p.left != null) { deque.add(p.left); } if (p.right != null) { deque.add(p.right); } } } return result; }
相关文章推荐
- ImageMagick压缩图片
- ueditor在使用requirejs时,报ZeroClipboard undefined错误
- 24、手把手教你Extjs5(二十四)模块Form的自定义的设计[3]
- 为什么WAF(Web Aplication Firewalls)不能确保数据库安全?
- sql语句获取表字段
- codeforces 601A(脑筋急转弯 , 55)
- 获取。。。。先占位
- 数组初始化
- autorelease pool
- nginx初测
- 监理工程师岁月--农民工的工作与生活
- js原生函数bind
- Android启动时间优化查看及冷启动时间优化优化
- 对工资在1000到2000元之间的员工更感兴趣,要求工资在这个范围员工排序在前面
- codeforce #322C Developing Skills (优先队列)
- Java static关键字
- (转)hadoop基本操作命令
- 安卓运行环境
- Xmind & MindManager
- 文章标题