Binary Tree Level Order Traversal II
2014-07-01 04:26
155 查看
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.
同 level order traversal 一用了相同的方法,只是加了一个stack,也可以直接用 arraylist.(index, value) 方法得出结果,但是我觉得这里应该考察的是数据结构,用stack 做要好一些。
这道题目用了queue 和 stack ,注意他们增删查empty 的方法名字不一样,不要混了。
(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 List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>>(); if (root == null) { return res; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); Stack<ArrayList<Integer>> st = new Stack<ArrayList<Integer>>(); queue.offer(root); int levelSize; while (!queue.isEmpty()) { levelSize = queue.size(); ArrayList<Integer> levelres = new ArrayList<Integer>(); for (int i = 0; i < levelSize; i++) { TreeNode cur = queue.poll(); if (cur.left != null) { queue.offer(cur.left); } if (cur.right != null) { queue.offer(cur.right); } levelres.add(cur.val); } st.push(new ArrayList<Integer>(levelres)); } while (!st.empty()) { res.add(st.pop()); } return res; } }
同 level order traversal 一用了相同的方法,只是加了一个stack,也可以直接用 arraylist.(index, value) 方法得出结果,但是我觉得这里应该考察的是数据结构,用stack 做要好一些。
这道题目用了queue 和 stack ,注意他们增删查empty 的方法名字不一样,不要混了。
相关文章推荐
- [LeetCode] Binary Tree Level Order Traversal II
- LeetCode题解:Binary Tree Level Order Traversal I and 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 107 Binary Tree Level Order Traversal II
- [LeetCode13]Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Day7 Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II--LeetCode
- LeetCode 107: Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- leetcode---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 107: Binary Tree Level Order Traversal II