LeetCode - Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:cdn和云计算 编辑:程序博客网 时间:2024/05/21 09:42
作者:disappearedgod
文章出处:http://blog.csdn.net/disappearedgod/article/details/37560509
时间:2014-5-26
题目
Binary Tree Zigzag Level Order Traversal
Total Accepted: 11074 Total Submissions: 41859My SubmissionsGiven 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}
,
3 / \ 9 20 / \ 15 7
return its zigzag level order traversal as:
[ [3], [20,9], [15,7]]
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
解法
1.添加奇偶层
多次提交后AC
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public ArrayList<ArrayList<Integer>> zigzagLevelOrder(TreeNode root) { //Deque<Integer> stack = new ArrayDeque<Integer>(); ArrayList<ArrayList<Integer>> retlist = new ArrayList<ArrayList<Integer>> (); if(root!=null){ Deque<TreeNode> s = new ArrayDeque<TreeNode>(); s.push(root); boolean stop = false; boolean odd= true; while(!stop){ Deque<TreeNode> s2 = new ArrayDeque<TreeNode>(); ArrayList<Integer> list = new ArrayList<Integer>(); while(!s.isEmpty()){ if(odd){ TreeNode t = s.pop(); if(t==null) continue; list.add(t.val); if(t.left!=null) s2.push(t.left); if(t.right!=null) s2.push(t.right); }else{ TreeNode t = s.pop(); if(t==null) continue; list.add(t.val); if(t.right!=null) s2.push(t.right); if(t.left!=null) s2.push(t.left); } } odd = !odd; retlist.add(list); if(s2.isEmpty()) return retlist; s = s2; System.gc(); } } return retlist; }}
0 0
- LeetCode: Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- 【leetcode】Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- [Leetcode]Binary Tree Zigzag Level Order Traversal
- [leetcode]Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode-Binary Tree Zigzag Level Order Traversal
- [leetcode] Binary Tree Zigzag Level Order Traversal
- LeetCode - Binary Tree Zigzag Level Order Traversal
- LeetCode:Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- python 自学总结
- windows,glut,glfw窗口设计
- java基础——文件(IO)操作1
- 关于node.js的误会
- qt+2012+qtcreator 配置
- LeetCode - Binary Tree Zigzag Level Order Traversal
- 【C++专题】static_cast, dynamic_cast, const_cast探讨
- c实现面向对象
- iOS网络高级编程:iPhone和iPad的企业应用开发之错误处理
- python logging
- Ant自动编译打包&发布 android项目
- 三大WEB服务器对比分析(apache ,lighttpd,nginx)
- Hive函数
- java.util.Date 与 java.sql.Date互转 及 字符串转换为日期时间格式