题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
/**
* 每打印一个结点的时候,如果该结点有子结点,则把该子结点放到队列的末尾.
* @param root
* @return
*/
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> res = new ArrayList<>();
if (root == null) {
return res;
}
Deque<TreeNode> deque = new LinkedList<>();
deque.push(root);
while (!deque.isEmpty()) {
TreeNode node = deque.pop();
res.add(node.val);
if (node.left != null) {
deque.add(node.left);
}
if (node.right != null) {
deque.add(node.right);
}
}
return res;
}