-
算法
广度优先遍历 -
核心思想
-
代码
class Solution {
List<List<Integer>> res = new LinkedList<>();
public List<List<Integer>> levelOrder(TreeNode root) {
if(root == null) return new LinkedList<>();
List<TreeNode> li = new ArrayList<>();
li.add(root);
bfs(root,li,0);
return res;
}
void bfs(TreeNode root,List<TreeNode> li,int start){
if(start == li.size()) return;
int length = li.size();
List<Integer> temp = new ArrayList<>();
for (; start < length; start++) {
TreeNode tree = li.get(start);
temp.add(tree.val);
if(tree.left != null){
li.add(tree.left);
}
if(tree.right != null){
li.add(tree.right);
}
}
res.add(new LinkedList<>(temp));
bfs(root,li,start);
}
}