102. 二叉树的层序遍历
已解答
中等
相关标签
相关企业
给你二叉树的根节点
root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]示例 2:
输入:root = [1] 输出:[[1]]示例 3:
输入:root = [] 输出:[]提示:
- 树中节点数目在范围
[0, 2000]
内-1000 <= Node.val <= 1000
队列+迭代
public List<List<Integer>> levelOrderBottom(TreeNode root) {//创建结果集List<List<Integer>> resultList = new ArrayList<>();if(root == null) return resultList;Queue<TreeNode> que = new LinkedList<>();//将根结点放入队列que.add(root);while(!que.isEmpty()){//装载每一层数据的集合List<Integer> itemList = new ArrayList<>();int len = que.size(); //len用于判断队列元素是否属于当前层while(len > 0){//拿出临时节点TreeNode tmpNode = que.poll();itemList.add(tmpNode.val);if(tmpNode.left != null){que.add(tmpNode.left);}if(tmpNode.right != null){que.add(tmpNode.right);}len--;}resultList.add(itemList);}//反转Collections.reverse(resultList);return resultList;}