二叉树的层序遍历

实现二叉树的层序遍历我们借助队列来实现,这个是用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;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章