coding interviews 22 打印二叉树

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

思路

It is like BFS, use queue.
Tips: DFS, use stack or recursion.

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {

ArrayList<Integer> result = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<>();

if(root != null){
queue.add(root);
}

while (!queue.isEmpty()){
TreeNode temp = queue.poll();
result.add(temp.val);
if(temp.left!=null){
queue.add(temp.left);
}
if(temp.right!=null){
queue.add(temp.right);
}
}
return result;

}