https://oj.leetcode.com/problems/binary-tree-level-order-traversal-ii/
http://blog.csdn.net/linhuanmars/article/details/23414711
/** * definition for binary tree * public class treenode { * int val; * TreeNode left; * treenode right; * treenode (int &NBSP;X) { val = x; } * } */public class solution { public list<list<integer>> levelorderbottom (TreeNode root) { // BFS if (root == null) Return collections.<list<integer>> emptylist (); list<list<integer >> toReturn = New arraylist<> (); queue<treenodewithlevel> queue = new LinkedList<TreeNodeWithLevel> (); queue.offer (New treenodewithlevel (root, 1)); while (!queue.isempty ()) { treenodewithlevel n = queue.poll (); if (Toreturn.size () < n.level) { toreturn.add (0, new arraylist<integer > ()); } &nbsP; toreturn.get (Toreturn.size () - n.level). Add (N.node.val); if (n.node.left != null) { queue.offer (New treenodewithlevel (n.node.left, n.level + 1)); } if (n.node.right != null) { queue.offer (New treenodewithlevel (n.node.right, n.level + 1)); } &nBSP;} return toReturn; } private static class TreeNodeWithLevel { int level; treenode node; treenodewithlevel (TreeNode node, int level) { this.node = node; this.level = level; } }}
[leetcode]107 Binary Tree level Order traversal II