一、描述:
二、思路:
同LeetCode 102,只是最后定义一新的List集合,逆序添加并返回
三、代码:
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public List<List<Integer>> levelOrderBottom(TreeNode root) { 12 List<List<Integer>> list1 = new ArrayList<List<Integer>>(); 13 List<List<Integer>> list3 = new ArrayList<List<Integer>>(); 14 TreeNode node; 15 Queue<TreeNode> queue = new LinkedList<TreeNode>(); 16 if(root==null){ 17 return list1; 18 } 19 queue.offer(root); 20 while(!queue.isEmpty()){ 21 List<Integer> list2 = new ArrayList<Integer>(); 22 int size = queue.size(); 23 for(int i=0;i<size;i++){ 24 node = queue.remove(); 25 list2.add(node.val); 26 if(node.left!=null){ 27 queue.offer(node.left); 28 } 29 if(node.right!=null){ 30 queue.offer(node.right); 31 } 32 } 33 list1.add(list2); 34 } 35 36 int size = list1.size()-1; 37 while(size>=0){ 38 list3.add(list1.get(size)); 39 size--; 40 } 41 return list3; 42 } 43 }