Leetcode:BinaryTree level order Traversal and Zigzag traversal
来源:互联网 发布:成都网络推广公司电话 编辑:程序博客网 时间:2024/05/21 15:01
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree {3,9,20,#,#,15,7}
,
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [3] [9,20], [15,7],]
ZigZag traversal 就是 第一行 from left to right,the second row is from right to left
return its bottom-up level order traversal as:
[ [3] [20,9], [15,7],]把这个写到博客是其中有2个处理技巧 非常重要 I never think of these ways to deal with these problems
the first problem: When the queue size changes every time,but we only need the original size how to deal it
the second problem:how to deal with the zigzag traversal(见下面的解释)
int size = queue.size;for(int i=0;i<size;i++);
while(!queue.isEmpty()) { ArrayList<Integer> list = new ArrayList<Integer>(); TreeNode node = queue.poll(); for (int i = 0; i < queue.size(); i++) {//如果 node的左孩子和右孩子任意一个不为空的话,queue的size在这里一直 //在变,但是第一次刷这一题的时候 也遇到这个问题,第二次刷的时候,还是遇到这样的问题,所以for循环条件需要改变 list.add(node.val); if (node.left!= null) { if (node.left != null) queue.offer(node.left); } if(node.right!=null){ if(node.right!=null) queue.offer(node.right); } } result.add(list); }
zigzag遍历的话 就需要我们设置一个flag 每次循环遍历一个链表之后改变一下flag的值 这段代码可以加在result.add(list)上面 刚开始flag设为true
if(!flag){ Collections.reverse(list); flag = true; }else{ flag = false; }
0 0
- Leetcode:BinaryTree level order Traversal and Zigzag traversal
- 【Leetcode】Binary Tree Level Order Traversal I/II AND 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
- MVC, MVP与MVVM
- 2055: 80人环游世界 有上下界的费用流
- java 爬虫
- C++ 动态绑定的实现机制
- Python图像处理库PIL的ImageStat模块介绍
- Leetcode:BinaryTree level order Traversal and Zigzag traversal
- HDU 2544 最短路 (弗洛伊德模板)
- HDU 1280 前m大的数
- c++字符串与数值之间的转换
- mac os上安装mongoldb
- HOJ 2148&POJ 2680(DP递推,加大数运算)
- inline和define
- 在Spring中配置使用commons-logging的simplelog来输出日志
- 简单的事情复杂做