LeetCode-Binary Tree Level Order Traversal II
来源:互联网 发布:商家请淘宝介入退款 编辑:程序博客网 时间:2024/06/04 08:27
作者:disappearedgod
文章出处:http://blog.csdn.net/disappearedgod/article/details/38896661
时间:2014-5-26
题目
Binary Tree Level Order Traversal II
Total Accepted: 16336 Total Submissions: 52120My SubmissionsGiven 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]]
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
解法
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public ArrayList<ArrayList<Integer>> levelOrderBottom1(TreeNode root) { ArrayList<ArrayList<Integer>> retlist = new ArrayList<ArrayList<Integer>>(); ArrayList<Integer> list = new ArrayList<Integer>(); Stack<TreeNode> s= new Stack<TreeNode>(); if(root == null) return retlist; s.push(root); list.add(root.val); while(!s.isEmpty()){ //list.clear(); list = new ArrayList<Integer>(); TreeNode t = s.pop(); if(t!=null){ if(t.left!=null) { list.add(t.left.val); s.push(t.left); } if(t.right!=null){ list.add(t.right.val); s.push(t.right); } } retlist.add(list); } ArrayList<ArrayList<Integer>> ret2 = new ArrayList<ArrayList<Integer>>(); for(int i=retlist.size()-1; i>=0; i--){ ret2.add(retlist.get(i)); } return ret2; } public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) { // Start typing your Java solution below // DO NOT write main() function ArrayList<ArrayList<Integer>> result=new ArrayList<ArrayList<Integer>>(); if(root==null) return result; Stack<ArrayList<Integer>> stack=new Stack<ArrayList<Integer>>(); ArrayList<TreeNode> list=new ArrayList<TreeNode>(); list.add(root); while(!list.isEmpty()) { ArrayList<TreeNode> Tplist=new ArrayList<TreeNode>(); ArrayList<Integer> level=new ArrayList<Integer>(); while(!list.isEmpty()) { TreeNode node=list.remove(0); level.add(node.val); if(node.left!=null) Tplist.add(node.left); if(node.right!=null) Tplist.add(node.right); } stack.push(level); list=Tplist; } while(!stack.isEmpty()) { result.add(stack.pop()); } return result; }}
结果
返回
LeetCode Solution(持续更新,java>c++)
0 0
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- [Leetcode]Binary Tree Level Order Traversal II
- [leetcode]Binary Tree Level Order Traversal II
- LeetCode-Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- LeetCode | Binary Tree Level Order Traversal II
- LeetCode - Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- 【LeetCode】Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- 输入框 js正则判断输入
- 坚持每天写一个程序
- CentOS配置smaba与Windows共享文件
- Python 日期和时间
- 三极管的电平转换及驱动电路分析
- LeetCode-Binary Tree Level Order Traversal II
- Validate Binary Search Tree
- 对功率谱的一点理解
- valuestack的工作原理
- C#中的json格式字符串解析
- 数组的指针特性
- RTF转纯文本
- wget: command not found的两种解决方案
- ManualResetEvent