实现二叉树的层序遍历,我们借助队列来实现,这个是用Java代码实现的,可以通过:
Queue queue = new LinkedList<>();//定义队列
直接来创建一个队列;
队列中的方法:
我是通过迭代的方法实现:先得到一个根节点;判断是否为null;
不为空的基础上 ,将root添加到队列中,然后进行迭代,
将队列首元素删除并返回,加入到list集合中,然后将root的左节点和右节点加入队列(在不为空的前提下),然后以此类推,就完成了二叉树的层序遍历。
public class Main {
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
//二叉树 层序遍历
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root){
ArrayList<Integer> ret = new ArrayList<>();
if (root==null) {
return ret;
}
Queue<TreeNode> queue = new LinkedList<>();//定义队列
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
ret.add(node.val);
if (node.left != null) queue.add(node.left);
if (node.right != null) queue.add(node.right);
}
return ret;
}