题目描述
力扣107题:leetcode-cn.com/problems/bi…
分析
该题目跟之前的[102. 二叉树的层序遍历]和[103. 二叉树的锯齿形层序遍历]类似,只需要在遍历出队列每层元素时,存储完本层的全部节点之后,将结果加入到结果队列的头部即可。
代码如下:
class Solution {
public List<List<Integer>> levelOrderBottom(TreeNode root) {
LinkedList<List<Integer>> result = new LinkedList<>();
if(root == null) {
return result;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()) {
List<Integer> levelList = new ArrayList<>();
int n = queue.size();
for(int i = 0 ;i<n;i++) {
TreeNode node = queue.poll();
levelList.add(node.val);
if(node.left != null) {
queue.add(node.left);
}
if(node.right != null) {
queue.add(node.right);
}
}
// 每次都往队头塞
result.addFirst(levelList);
}
return result;
}
}