经典算法题:从上到下打印二叉树

一、题目

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

二、思路

使用链表,将同一层的放在链表中

三、实现

public int[] levelOrder(TreeNode root) {

        if (root == null) {

            return new int[]{};

        }

        LinkedList<TreeNode> list = new LinkedList<>();

        list.add(root);

        List<Integer> res = new ArrayList<>();

        while (!list.isEmpty()) {

            int size = list.size();

            for (int i = size - 1; i >= 0; i--) {

                TreeNode node = list.pollFirst();

                res.add(node.val);

                if (node.left != null) {

                    list.addLast(node.left);

                }

                if (node.right != null) {

                    list.addLast(node.right);

                }

            }

        }

        int[] array = new int[res.size()];

        

        for (int i = 0; i < res.size(); i++) {

            array[i] = res.get(i);

        }

        return array;

    }

发布了83 篇原创文章 · 获赞 0 · 访问量 4509

猜你喜欢

转载自blog.csdn.net/zhangdx001/article/details/105509872
今日推荐