102. 二叉树的层序遍历 队列+迭代
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>> levelOrder(TreeNode root) {List<List<Integer>> resultList = new ArrayList<>();if(root == null){return resultList;}//迭代实现//把根节点装进队列里面Queue<TreeNode> que = new LinkedList<>();que.add(root);//que.offer(root);while(!que.isEmpty()){List<Integer> itemList = new ArrayList<>();int len = que.size();while(len > 0){//装配一层的结果集TreeNode tempNode = que.poll();//拿到值itemList.add(tempNode.val);//拿到值后里面查看当前节点的左右节点是否存在,存在装进去 随着len的实时更新。 //会逐渐遍历 len用于找到队列哪些节点是当前层if(tempNode.left != null){que.add(tempNode.left);}if(tempNode.right != null){que.add(tempNode.right);}len--;}resultList.add(itemList);}return resultList;}