Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:淘宝店卖肉需要执照吗 编辑:程序博客网 时间:2024/06/06 15:04
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).
java
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /* * @param root: A Tree * @return: A list of lists of integer include the zigzag level order traversal of its nodes' values. */ public List<List<Integer>> zigzagLevelOrder(TreeNode root) { // write your code here List<List<Integer>> list = new ArrayList<>(); if (root == null) { return list; } Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); int count = 0; while (!queue.isEmpty()) { int num = queue.size(); List<Integer> value = new ArrayList<>(); for (int i = 0; i < num; i++) { TreeNode node = queue.poll(); value.add(node.val); if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } if (count % 2 == 0) { list.add(value); } else { Collections.reverse(value); list.add(value); } count++; } return list; }}python
"""Definition of TreeNode:class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None"""class Solution: """ @param: root: A Tree @return: A list of lists of integer include the zigzag level order traversal of its nodes' values. """ def zigzagLevelOrder(self, root): # write your code here result = [] if root is None: return result queue = [root] count = 0 while queue: new_q = [] if count % 2 == 0: result.append([node.val for node in queue]) else: arr = [node.val for node in queue] arr = list(reversed(arr)) result.append(arr) count += 1 for node in queue: if node.left: new_q.append(node.left) if node.right: new_q.append(node.right) queue = new_q return result
阅读全文
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
- 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
- [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
- HDU 6194 string string string
- RN刷新回调
- Leetcode 169.Majority Element
- day7
- Oracle触发器用法实例详解
- Binary Tree Zigzag Level Order Traversal
- 树链剖分-专题
- spring MVC配置详解
- Java的反射机制(一)
- 很全的 Python 面试题
- 自定义View的绘制原理图解
- iOS block之三种block
- 文本处理三剑客之awk
- nginx-设置网络连接的序列化