文章目录
- 题目
- 方法一:队列+层序迭代
题目
方法一:队列+层序迭代
解题详情:【LeetCode-中等题】102. 二叉树的层序遍历
res.add(0,zres); //效果是将 zres 列表作为 res 的第一个子列表,并将其它原本在第一位置及之后的子列表向后移动一个位置。// 从而达到逆序的效果
这样就无须将最后的结果res做reverse翻转了
class Solution {public List<List<Integer>> levelOrderBottom(TreeNode root) {List<List<Integer>> res = new ArrayList<>();if(root == null) return res;List<Integer> zres = null;Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);while(!queue.isEmpty()){int size = queue.size();zres = new ArrayList<>();for(int i = 0 ; i < size ;i++){root = queue.poll();zres.add(root.val);if(root.left!=null) queue.offer(root.left);if(root.right!=null) queue.offer(root.right);}res.add(0,zres);
// 使用 res.add(0,zres) 将 zres 列表插入到 res 的第一个位置。
// 这样做的效果是将 zres 列表作为 res 的第一个子列表,并将其它原本在第一位置及之后的子列表向后移动一个位置。}return res;}
}