您当前的位置: 首页 >  算法

Phil Arist

暂无认证

  • 1浏览

    0关注

    276博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

算法修炼22、从上往下打印二叉树

Phil Arist 发布时间:2021-10-19 17:58:57 ,浏览量:1

题目描述:

  从上往下打印出二叉树的每个节点,同层节点从左至右打印。

  解题思路:

  本题实际上就是二叉树的层次遍历,深度遍历可以用递归或者栈,而层次遍历很明显应该使用队列。同样我们可以通过一个例子来分析得到规律:每次打印一个结点时,如果该结点有子结点,则将子结点放到队列的末尾,接下来取出队列的头重复前面的打印动作,直到队列中所有的结点都打印完毕。

  举例:

  编程实现(Java):

    public ArrayList PrintFromTopToBottom(TreeNode root) {
        //思路:使用队列来实现
        ArrayList res=new ArrayList();
        if(root==null)
            return res;
        Queue queue=new LinkedList(); //定义一个队列
        queue.add(root);
        while(queue.size()!=0){
            TreeNode temp=queue.poll();//队头移除
            res.add(temp.val);
            if(temp.left!=null)
                queue.add(temp.left);
            if(temp.right!=null)
                queue.add(temp.right);                
        }
        return res;
    }
关注
打赏
1662360869
查看更多评论
立即登录/注册

微信扫码登录

0.0366s