大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn
102. 二叉树的层序遍历
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树:[3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其层次遍历结果:
[
[3],
[9,20],
[15,7]
]
分析
典型的BFS模板题,通过队列实现先进先出,唯一需要注意的是这个循环for(int i=0;i<n;i++)
,是保证层次遍历的关键
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> lists = new ArrayList<>();
if(root == null)return lists;
LinkedList<TreeNode> queue = new LinkedList<>();
queue.addLast(root);
while(queue.size()!=0){
int n = queue.size();
List<Integer> curList = new ArrayList<>();
for(int i=0;i<n;i++){
TreeNode tmpNode = queue.removeFirst();
curList.add(tmpNode.val);
if(tmpNode.left != null)queue.addLast(tmpNode.left);
if(tmpNode.right != null)queue.addLast(tmpNode.right);
}
lists.add(curList);
}
return lists;
}
}
提交结果
2020年9月23日更
大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn