题目:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:
就是二叉树的层序遍历,借助队列先进先出的特性完成.
Ps:
这种形式的写法不需要考虑quene是否为空的情况,因为node只要为空说明队列就已经为空了.
代码:
/**
* Created by Hammy on 2018/1/31.
*/
public class PrintTopToBottom
{
public ArrayList<Integer> printTopToBottom(TreeNode root){
ArrayList<Integer> arrayList = new ArrayList();
LinkedList<TreeNode> quene = new LinkedList<TreeNode>();
TreeNode node = root;
while(node != null){
arrayList.add(node.val);
if(node.left != null){
quene.add(node.left);
}
if(node.right != null){
quene.add(node.right);
}
node = quene.poll();
}
return arrayList;
}
}