Binary Tree Level Order Traversal II
This is very similar to Binary Tree Level Order Traversal. Just reverse the order of the list.
ArrayList has API- > add(int index, Element) or Collections.reverse(rst)
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: The root of binary tree. * @return: buttom-up level order a list of lists of integer */ public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) { // write your code here ArrayList<ArrayList<Integer>> rst = new ArrayList<ArrayList<Integer>>(); if (root == null) { return rst; } Queue<TreeNode> q = new LinkedList<TreeNode>(); q.offer(root); while (!q.isEmpty()) { ArrayList<Integer> level = new ArrayList<Integer>(); int n = q.size(); for (int i = 0; i < n; i++) { TreeNode node = q.poll(); level.add(node.val); if (node.left != null) { q.offer(node.left); } if (node.right != null) { q.offer(node.right); } } rst.add(0, level); } return rst; } }
posted on 2017-06-13 09:06 codingEskimo 阅读(86) 评论(0) 编辑 收藏 举报