java:
class Solution {
List<List<Integer>> res = new ArrayList<>();
public List<List<Integer>> levelOrderBottom(TreeNode root) {
if (root == null)
return res;
LinkedList<TreeNode> que = new LinkedList<>();
que.addLast(root);
while (!que.isEmpty()) {
List<Integer> tem = new ArrayList<>();
int size = que.size();
for (int i = 0; i < size; i++) {
tem.add(que.getFirst().val);
if (que.getFirst().left != null)
que.addLast(que.getFirst().left);
if (que.getFirst().right != null)
que.addLast(que.getFirst().right);
que.removeFirst();
}
res.add(new ArrayList<>(tem));//注!也可以结果用LinkedList存储把结果倒过来存,也是List
}
swapArray(res);
return res;
}
public void swapArray(List<List<Integer>> res) {//注意!!反转一下
int i = 0, j = res.size() - 1;
while (i < j) {
List<Integer> tem = new ArrayList<>(res.get(i));
res.set(i, res.get(j));
res.set(j, tem);
i++;
j--;
}
}
}