题目
- 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
示例
- 示例1
- 给定二叉树: [3,9,20,null,null,15,7]
3
/ \
9 20
/ \
15 7
- 返回:[3,9,20,15,7]
代码
- 队列
class Solution {
public int[] levelOrder(TreeNode root) {
if(root == null) return new int[0];
List<Integer> list = new ArrayList<Integer>();
Queue<TreeNode> q = new LinkedList<TreeNode>();
q.offer(root);
while(!q.isEmpty()){
TreeNode temp = (TreeNode)q.poll();
list.add(temp.val);
if(temp.left != null) q.add(temp.left);
if(temp.right != null) q.add(temp.right);
}
int[] res = new int[list.size()];
for(int i = 0; i < list.size(); i++){
res[i] = list.get(i);
}
return res;
}
}
代码分析
:注意一个地方 List<Integer> list = new ArrayList<Integer>();
等号前面的泛型也要带上。反正在 LeetCode 里面要这样。
- 其他方法