目录
知识点树广度优先搜索(BFS)
描述
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]
]
思想:层序遍历-队列
代码
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @return int整型ArrayList<ArrayList<>>
*/
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
if(root == null) return res;
Queue<TreeNode> list = new LinkedList<>();
list.offer(root);
while(!list.isEmpty()){
ArrayList<Integer> arr = new ArrayList<>();
//想不通为啥for(int I = 0; I < list.size(); I++) 不行
int size = list.size();
while(size!=0){
TreeNode temp = list.poll();
arr.add(temp.val);
size--;
if(temp.left!=null) list.offer(temp.left);
if(temp.right!=null) list.offer(temp.right);
}
res.add(arr);
}
return res;
}
}