十一第三题Binary Tree Level Order Traversal II
2015-10-01 10:14
288 查看
public class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> list = new ArrayList<List<Integer>>(); if (root == null) return list; List<TreeNode> mainList = new ArrayList<TreeNode>(); List<Integer> tmpList = new ArrayList<Integer>(); int curr = 0; Stack<List<Integer>> stack = new Stack<List<Integer>>(); mainList.add(root); tmpList.add(root.val); while (mainList.size() > curr) { int tmp = mainList.size(); List<Integer> newTmpList = new ArrayList<Integer>(); for (int i = curr; i < tmp; i++) newTmpList.add(tmpList.get(i)); stack.push(newTmpList); while (tmp > curr) { TreeNode node = mainList.get(curr++); if (node.left != null) { mainList.add(node.left); tmpList.add(node.left.val); } if (node.right != null) { mainList.add(node.right); tmpList.add(node.right.val); } } } while (!stack.empty()) list.add(stack.pop()); return list; } }思路很简单,利用层次遍历,然后利用stack先进后出的思想。
相关文章推荐
- 权限管理命令-其他权限管理命令
- Cube Stacking
- 监控某一个小文件夹的java程序
- C++基础编程---1.3模糊概念
- UVa 712
- iOS开发实用技术之换肤和静态库
- 判断两直线是否相交 hdu1086
- Win10注册表中怎么去掉鼠标加速?
- Copy List with Random Pointer
- iOS开发 runloop&runtime
- 学习 spams --- 安装
- 基于OL2实现百度地图ABCD marker的效果
- mac系统如何显示和隐藏文件
- 如何解决Linux下库文件的加载错误问题
- [sig15]HorizonZeroDawn的云渲染技术
- 解决IE下Ajax请求无效
- GCC编译报错:程序中有游离的‘\311’
- Sobel算子
- 平衡二叉树之AVL树
- Clone Graph