Binary Tree Level Order Traversal II 解答
2015-09-24 04:58
369 查看
Question
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:
[ [15,7], [9,20], [3] ]
Solution
Same method as "Binary Tree Level Order Traversal". Note that for ArrayList, it has function add(int index, E element)./** * 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>> levelOrderBottom(TreeNode root) { List<List<Integer>> result = new ArrayList<List<Integer>>(); if (root == null) return result; Deque<TreeNode> prev = new ArrayDeque<TreeNode>(); Deque<TreeNode> current; TreeNode tmpNode; prev.addLast(root); while (prev.size() > 0) { current = new ArrayDeque<TreeNode>(); List<Integer> tmpList = new ArrayList<Integer>(); while (prev.size() > 0) { tmpNode = prev.pop(); if (tmpNode.left != null) current.addLast(tmpNode.left); if (tmpNode.right != null) current.addLast(tmpNode.right); tmpList.add(tmpNode.val); } prev = current; result.add(0, tmpList); } return result; } }
相关文章推荐
- Bit Manipulation
- Binary Tree Level Order Traversal 解答
- BFS visit tree
- [LeetCode 228] Summary Ranges
- 条款40:明智而审慎地使用多重继承
- LeetCode Jump Game II
- LeetCode OJ 03 Longest Substring Without Repeating Characters
- [LeetCode 223] Rectangle Area
- 涵盖各种编程语言的深度学习库整理大全
- HDU 4123 Bob’s Race(树形DP+RMQ)
- java 内存模型
- C++英文单词统计小程序
- POJ - 3468 A Simple Problem with Integers(线段树成段更新,查询区间和)
- POJ - 4047 Garden(线段树成段更新,查询最值)
- [极角排序 扫描法]UVa1606 - Amphiphilic Carbon Molecules
- [等价转换]UVa11054 - Wine trading in Gergovia
- [问题分解]UVa11054 - Wine trading in Gergovia
- iOS实现倒计时功能
- [Hash思想]UVa1152 - 4 Values whose Sum is 0
- IOS开发之实现App消息推送