LeetCode-Binary Tree Level Order Traversal II
2014-08-28 13:27
435 查看
作者:disappearedgod
文章出处:/article/3730189.html
时间:2014-5-26
Total Accepted: 16336 Total
Submissions: 52120My Submissions
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:
confused what
read more on how binary tree is serialized on OJ.
Solution(持续更新,java>c++)
文章出处:/article/3730189.html
时间:2014-5-26
题目
Binary Tree Level Order Traversal II
Total Accepted: 16336 TotalSubmissions: 52120My Submissions
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] ]
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; } }
结果
返回
LeetCodeSolution(持续更新,java>c++)
相关文章推荐
- 【Leetcode】【Easy】Binary Tree Level Order Traversal II
- LeetCode No.107 Binary Tree Level Order Traversal II
- 【LeetCode-107】Binary Tree Level Order Traversal II
- leetcode 刷题之路 5 Binary Tree Level Order Traversal II
- Leetcode[107]-Binary Tree Level Order Traversal II
- leetcode_question_107 Binary Tree Level Order Traversal II
- LeetCode: Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II [LEETCODE]
- Leetcode Binary Tree Level Order Traversal II
- [leetcode 107]Binary Tree Level Order Traversal II
- 【leetcode c++】107 Binary Tree Level Order Traversal II
- LeetCode(26)-Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- 【Leetcode】【python】Binary Tree Level Order Traversal II
- [Leetcode 80] 107 Binary Tree Level Order Traversal II
- Leetcode 树 Binary Tree Level Order Traversal II
- 【LEETCODE】107-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 I,II