LeetCode Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:手机淘宝怎样赚集分宝 编辑:程序博客网 时间:2024/06/13 16:57
题目链接:https://oj.leetcode.com/problems/binary-tree-zigzag-level-order-traversal/
题目描述:给定一棵二叉树,对其中的节点做BFS,只是每个层次的遍历顺序有着这样的要求,单数层从左到右遍历,双数层从右到左遍历,层数从1开始。
package BinaryTreeZigzagLevelOrderTraversal;import java.util.*;public class Solution {class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(int x){this.val=x;}} public List<List<Integer>> zigzagLevelOrder(TreeNode root) { if(root==null) return new LinkedList<List<Integer>>(); LinkedList<List<Integer>> ans = new LinkedList<List<Integer>>(); LinkedList<TreeNode> queue1 = new LinkedList<TreeNode>(); LinkedList<TreeNode> queue2 = new LinkedList<TreeNode>(); queue1.add(root); while(!queue1.isEmpty()||!queue2.isEmpty()){ List<Integer> l1 = new LinkedList<Integer>(); List<Integer> l2 = new LinkedList<Integer>(); while(!queue1.isEmpty()){ TreeNode temp = queue1.poll(); l1.add(temp.val); if(temp.left!=null) queue2.add(temp.left); if(temp.right!=null) queue2.add(temp.right); } while(!queue2.isEmpty()){ TreeNode temp = queue2.poll(); l2.add(temp.val); if(temp.left!=null) queue1.add(temp.left); if(temp.right!=null) queue1.add(temp.right); } if(!l1.isEmpty()) ans.add(l1); if(!l2.isEmpty()) { LinkedList<Integer> reversed = new LinkedList<Integer>(); for(int i=l2.size()-1;i>=0;i--) reversed.add(l2.get(i)); ans.add(reversed); } } return ans; }}
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
- HDU 4770 Lights Against Dudely
- hdu 4995 Revenge of kNN (模拟)
- HDU-#1175 连连看(DFS+剪枝)
- List remove中要注意的问题
- 五种服务器网络编程模型
- LeetCode Binary Tree Zigzag Level Order Traversal
- sscanf()函数的用法
- Powershell配置SharePoint环境
- IOS开发 开机动画
- UVa 10391 Compound Words
- ISE 里的timing report
- 不可能的出栈顺序
- Win7系统安装NodeJS及环境配置笔记
- Android游戏开发之Cocos2d-android-1 引擎有缺陷 (二)