难度 medium
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]
]
解题思路:这道题是很简单的,从牛客网上做的,其中集合的用法还是百度了,不熟练,所以代码贴上来,多看多记。
代码 t70 s50 java
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) {
// write code here
Queue<TreeNode> q = new LinkedList<>();
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
if(root==null) return res;
q.add(root);
while(q.size()>0){
int sz = q.size();
ArrayList<Integer> temp = new ArrayList<>();
for(int i=0; i<sz; i++){
TreeNode node = q.poll();
temp.add(node.val);
if(node.left!=null) q.add(node.left);
if(node.right!=null) q.add(node.right);
}
res.add(temp);
}
return res;
}
}
参考资料: