leetcode-103. Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:淘宝宝贝详情页怎么做 编辑:程序博客网 时间:2024/06/07 00:33
leetcode-103. Binary Tree Zigzag Level Order Traversal
题目:
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,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its zigzag level order traversal as:
[
[3],
[20,9],
[15,7]
]
和上一题层序遍历很类似,不过要求是Z字型遍历,所以这里用栈,而且需要一个bollean变量来表示方向。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> ret = new ArrayList<List<Integer>>(); Stack<TreeNode> tmp = new Stack<TreeNode>(); if(root!=null) tmp.add(root); boolean flag = true; while(tmp.size()!=0){ List<Integer> ad = new ArrayList<Integer>(); Stack<TreeNode> replace = new Stack<TreeNode>(); while(tmp.size()!=0){ TreeNode node = tmp.pop(); if(!flag){ if(node.right!=null)replace.add(node.right); if(node.left!=null)replace.add(node.left); ad.add(node.val); }else{ if(node.left!=null)replace.add(node.left); if(node.right!=null)replace.add(node.right); ad.add(node.val); } } flag = !flag; tmp = replace; ret.add(ad); } return ret; }}
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
- Swift KVO和KVC模式
- 干货!android开发界面设计的资源
- jupyter notebook远程访问
- xml grid viewer
- NOJ 1033 约瑟夫问题
- leetcode-103. Binary Tree Zigzag Level Order Traversal
- js序列化与反序列化
- 数据结构与算法(C语言版)__基数排序
- Java之于Javascript就好比Car(汽车)之于Carpet(地毯 )
- CentOS 6 安装Rabbitmq(Cluster)
- Android Next 公共组件库:Android-Next
- iOS开发如何跳转到系统设置或功能?
- NOJ 1018 选太子
- SpringMVC中使用Interceptor拦截器