LeetCode Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:杭州二手房成交数据 编辑:程序博客网 时间:2024/05/21 01:58
题目:
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}
,
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.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}"
.就是给定一棵二叉树,然后按照之字形来输出,其实就是层次遍历,只不过遇到偶数层,就换一下顺序即可,换汤不换药的题,和我之前的那两篇博客的方法基本一样。
public class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root){List<List<Integer>> list = new ArrayList<List<Integer>>();LinkedList<TreeNode> node = new LinkedList<TreeNode>();if(root == null)return list;else{ node.add(root); int length = node.size(); int i = 1; while(!node.isEmpty()) { List<Integer> nodes = new ArrayList<Integer>(); while(length-- > 0) { int value = node.peek().val; TreeNode n = node.peek(); node.poll(); nodes.add(value); if(n.left != null) node.add(n.left); if(n.right != null) node.add(n.right); } length = node.size(); if(i % 2 == 0) Collections.reverse(nodes); list.add(nodes); i++; } return list;}}}
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
- Android 防止多次点击事件
- python读写文件脚本
- Kafka设计要点
- pod install 遇到 :[MT] DVTAssertions: ASSERTION FAILURE in ……
- 求转置矩阵问题
- LeetCode Binary Tree Zigzag Level Order Traversal
- acm2058
- LightOJ 1043 - Triangle Partitioning【数学】
- 数据结构之栈和队列
- windows10安装Genymotion步骤
- Android控件之Dialog(two)列表与自定义弹窗
- Flex页面报java.lang.NullPointerException
- SlidingLayout
- java 求一个数每一个位上面的数