LeetCode——从上到下打印二叉树 II

这篇具有很好参考价值的文章主要介绍了LeetCode——从上到下打印二叉树 II。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目来源

剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣(LeetCode)

题目

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

示例

给定二叉树:[3,9,20,null,null,15,7]

LeetCode——从上到下打印二叉树 II

返回其层次遍历结果:

[
  [3],
  [9,20],
  [15,7]
]

 解析:

该题是二叉树层次遍历的另一种形式,要想做出该题,首先要明白层次遍历的原理,下面来复习一下层次遍历:

层次遍历的实现需要借助队列实现,首先将根结点入队,如果队列不为空,则取出队列的队头节点cur,并输出队头节点的值cur.value;然后,若队头节点的左孩子不为空,即cur.left!=null,则将其入队;若队头节点的右孩子不为空,即cur.right!=null,则将其入队;然后循环上述步骤,直至队列为空。

    public static void levelOrder(Node root) {
        if (root == null) {
            return;
        }
        Queue<Node> queue = new LinkedList<>();
        queue.offer(root);
        while (!queue.isEmpty()) {
            Node cur = queue.poll();
            System.out.print(cur.value+" ");
            if (cur.left != null) {
                queue.offer(cur.left);
            }
            if (cur.right != null) {
                queue.offer(cur.right);
            }
        }
    }

 本题是将二叉树的每层以链表的形式输出,但其思想仍然是层次遍历的思想,其具体实现如下:文章来源地址https://www.toymoban.com/news/detail-512338.html

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> list=new ArrayList<>();
        //如果树为空,则返回
        if(root==null){
            return list;
        }
        //如果树不为空
        //借助队列
        Queue<TreeNode> queue=new LinkedList<>();
        queue.offer(root);//将根结点入队
        while(!queue.isEmpty()){
            ArrayList<Integer> arraylist=new ArrayList<>();
            int size= queue.size();
            for(int i=0;i<size;i++){
                TreeNode cur=queue.poll();
                arraylist.add(cur.val);
                if(cur.left!=null){
                    queue.offer(cur.left);
                }
                if(cur.right!=null){
                    queue.offer(cur.right);
                }
            }
            list.add(arraylist);
        }
        return list;
    }
}

到了这里,关于LeetCode——从上到下打印二叉树 II的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包