LeetCode(26)-Binary Tree Level Order Traversal II
2016-04-06 12:11
531 查看
题目:
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] ]
思路:
递归的思路-
代码:
/** * 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>>(); levelOrderBottomHelper(root, result, 1); return result; } public void levelOrderBottomHelper(TreeNode root, List<List<Integer>> result, int depth) { if (root == null) return; List<Integer> list; if (result.size() < depth) { list = new ArrayList<Integer>(); result.add(0, list); } else { list = result.get(result.size() - depth); } list.add(root.val); levelOrderBottomHelper(root.left, result, depth+1); levelOrderBottomHelper(root.right, result, depth+1); } }
相关文章推荐
- Json的访问
- 【牛腩新闻发布系统】写SQlHelper
- 企业招聘总监理工程师、监理工程师
- Bloom Filter算法和实现
- 北京Uber优步司机奖励政策(4月6日)
- 精益化运营:10款移动统计分析工具推荐
- C++虚函数分析[2]--虚函数介绍
- [翻译] - <Entity Framework> - 直接执行数据库命令
- 作为一个新人,如何学习嵌入式Linux?
- C#实例之计算字符串中不同字符的个数
- Linux装载和启动一个可执行程序
- 使用Python操作Redis
- 【MFC】:MFC中实现文件追加的方法
- .NET跨平台实践:用C#开发Linux守护进程
- 如何自己动手实现 KVO
- IOS开发数据存储篇—IOS中的几种数据存储方式
- 欢迎使用CSDN-markdown编辑器
- WIN32汇编列表框的使用
- 37玩sdk接入后,用手机号注册账号时提示签名错误
- 如何为UICollectionView的每一个组设置不同的颜色