题目:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
分析:
层序遍历需借助队列,将节点入队出队进行遍历。
实现:
//import java.util.LinkedList;
//import java.util.Queue;
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<TreeNode>();
ArrayList<Integer> listVal = new ArrayList<Integer>();
if (root == null)
return listVal;
queue.add(root);
listVal.add(root.val);
TreeNode node = root;
while (!queue.isEmpty()) {
node = queue.poll();
if (node.left != null) {
queue.add(node.left);
listVal.add(node.left.val);
}
if (node.right != null) {
queue.add(node.right);
listVal.add(node.right.val);
}
}
return listVal;
}