LeetCode - Binary Tree Level Order Traversal II
2016-01-10 11:35
337 查看
题目:
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
return its bottom-up level order traversal as:
思路:
递归,然后swap
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] ]
思路:
递归,然后swap
package treetraversal; import java.util.ArrayList; import java.util.List; public class BinaryTreeLevelOrderTraversalII { public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>>(); levelOrderTraversal(res, root, 0); int n = res.size(); for (int i = 0; i < n / 2; ++i) { List<Integer> tmp = res.get(i); res.set(i, res.get(n - i - 1)); res.set(n - i - 1, tmp); } return res; } private void levelOrderTraversal(List<List<Integer>> res, TreeNode root, int k) { if (root == null) return; if (res.size() < k + 1) { List<Integer> record = new ArrayList<Integer>(); record.add(root.val); res.add(record); } else { res.get(k).add(root.val); } levelOrderTraversal(res, root.left, k + 1); levelOrderTraversal(res, root.right, k + 1); } }
相关文章推荐
- 有关网络包长度与校验和的研究
- 简单密码解码
- NSURLSession的强引用问题
- <Android Studio实用指南>8.16 提炼参数对象
- 遍历hashMap
- 傅立叶级数动图
- 网站无法登陆
- 《Effective Modern C++》翻译--条款1: 理解模板类型推导
- 用JAVA编写汉诺塔程序
- (2-3)DateNode+小结HDFS
- adobe CC 2015 mac 版本全套破解方法(可在线更新或者离线更新)
- 《Effective Modern C++》翻译--条款1: 理解模板类型推导
- 小心SQL SERVER 2014新特性——基数评估引起一些性能问题
- Spark on Yarn 架构解析
- java中的==运算符、equals()方法
- 《访问Mat图像中每个像素的值》)
- 天声人語 20160110 ウルトラマン50年
- java数组元素重复次数最大值
- Property动画实例1
- 3172: [Tjoi2013]单词 fail树