22.从上往下打印二叉树

题目描述

       从上往下打印出二叉树的每个节点,同层节点从左至右打印;ps.就是层次遍历

解题思路

       用队列(LinkedList)来进行层次遍历;

     public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        if (root == null) {
            return list;    //如果根节点为空,就直接返回空的List
        }

        LinkedList<TreeNode> queue = new LinkedList<TreeNode>();  //队列
        queue.add(root);      //添加根节点
        
        while (!queue.isEmpty()){
            TreeNode current = queue.pop();
            list.add(current.val);

            if (current.left != null){   
                queue.add(current.left);  //把左节点加入队列
            }
            if (current.right != null){
                queue.add(current.right); //把右节点加入队列
            }
        }
        return list;
    }

猜你喜欢

转载自blog.csdn.net/Regemc/article/details/80051226