/*
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
BFS
*/
//用队列来 实现层次遍历
public class Solution
{
public ArrayList<Integer> printFromTopToBottom(TreeNode root)
{
Queue<TreeNode> queue = new LinkedList<>();
ArrayList<Integer> res = new ArrayList<>();
queue.add(root);// 根节点入队
while (!queue.isEmpty())// 只要队列中有元素,就可以一直执行,非常巧妙的利用了队列的特性
{
TreeNode treeNode = queue.poll();// 出队队头元素
res.add(treeNode.val);
if (treeNode.left != null)
queue.add(treeNode.left);
if (treeNode.right != null)
queue.add(treeNode.right);
}
return res;
}
}
《剑指offer》NO32.1 从上往下打印二叉树 详解 <Java实现>
最新推荐文章于 2021-02-12 17:34:43 发布