FTPrep, 103 Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:java源代码文件夹在 编辑:程序博客网 时间:2024/06/15 13:57
这道题和上面的102极像,为了正反方向,可以设置一个level的变量,看level的奇偶数 来觉得读取的方向。
但是 要保持头脑清醒,这里的正方向,看似是读取的方向,实际上可以不是读取的方向!!如果看成是读取的方向,那在写判断条件的时内部的操作,代码就很多。换一个角度,其实还是保持从左到右的读取方向,但是在存入 item list 时可以倒着存入!!每次都存入 位置是 0 的点,这样就非常简单的完成了任务!
代码如下,一目了然:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */// interface name: zigzagLevelOrder// input TreeNode root;// output List<List<Integer>>public class Solution{ public List<List<Integer>> zigzagLevelOrder(TreeNode root){ List<List<Integer>> result = new ArrayList<>(); if(root==null) return result; int level=1; List<TreeNode> currLevel = new ArrayList<>(); currLevel.add(root); while(!currLevel.isEmpty()){ List<Integer> numList = new ArrayList<>(); List<TreeNode> nextLevel = new ArrayList<>(); for(TreeNode node: currLevel){ // read value if(level%2==1) numList.add(node.val); else numList.add(0, node.val); // generate next level if(node.left!=null) nextLevel.add(node.left); if(node.right!=null) nextLevel.add(node.right); } result.add(numList); currLevel=nextLevel; level++; } return result; }}// key point: 1, simplify the logic; 2, adding elem in front of the list: list.add(0, node.val);
阅读全文
0 0
- FTPrep, 103 Binary Tree Zigzag Level Order Traversal
- 103 Binary Tree Zigzag Level Order Traversal
- 103-Binary Tree Zigzag Level Order Traversal
- FTPrep, 102 Binary Tree 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
- Binary Tree Zigzag Level Order Traversal
- 【leetcode】Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- [Leetcode]Binary Tree Zigzag Level Order Traversal
- string 与 char* 互转
- 用户态向核心态转变
- jnz指令和jne指令区别
- Leetcode : Restore IP Addresses
- Vision_MATH_Lucas定理及扩展
- FTPrep, 103 Binary Tree Zigzag Level Order Traversal
- @responseBody注解的使用
- Android Studio插件开发3之Extensions And Extension Points(扩展与扩展点)
- 新手学习maven之启动Tomcat报错
- Linux上vi(vim)编辑器使用教程
- python实战游戏开发——射击
- Lintcode合并排序数组 II
- 《生物信息学学习感悟》读后感
- C++之STL理论基础