103. Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:万德数据库怎么购买 编辑:程序博客网 时间:2024/06/05 22:57
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]]跟传统102. Binary Tree Level Order Traversal相比,只需要改动向ArrayList的添加方向就能实现蛇形遍历,单数层ArrayList.add(val),双数层ArrayList.add(0, val)。代码如下:
/** * 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>> res = new ArrayList<List<Integer>>(); if (root == null) return res; Queue<TreeNode> queue = new LinkedList<TreeNode>(); boolean reverse = false; queue.offer(root); while (!queue.isEmpty()) { int size = queue.size(); List<Integer> subLevel = new ArrayList<Integer>(); for (int i = 0; i < size; i++) { if (queue.peek().left != null) queue.offer(queue.peek().left); if (queue.peek().right != null) queue.offer(queue.peek().right); if (reverse) { subLevel.add(0, queue.poll().val); } else { subLevel.add(queue.poll().val); } } reverse = !reverse; res.add(subLevel); } return res; }}
阅读全文
0 0
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 103. Binary Tree Zigzag Level Order Traversal
- 工具收集
- android进程、线程的优先级
- (转载)机器学习知识点(二十九)LDA入门级学习笔记
- 使用 win10+python 2.7 连接 mysql 的方法
- solve Matlab "mex -setup" not work
- 103. Binary Tree Zigzag Level Order Traversal
- JavaScript拖拽(三):限定范围拖拽及应用自定义滚动条
- 创业公司采用什么样的技术架构满足业务需求
- Android listview 表格显示和自动循环显示
- web环境常见组合及管理后台
- 你会为情怀买单么?反正我会!
- EMI之-磁珠(bead)的作用
- C++ 简易string类实现(四)-自动操作引用次数
- java执行客户端命令(windows与linux通用)