JZ32 从上往下打印二叉树(Java)

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

题目地址:从上往下打印二叉树_牛客题霸_牛客网
题目回顾:

不分行从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入{8,6,10,#,#,2,1},如以下图中的示例二叉树,则依次打印8,6,10,2,1(空节点不打印,跳过),请你将打印的结果存放到一个数组里面,返回。

JZ32 从上往下打印二叉树(Java),力扣刷题,算法,数据结构,java

JZ32 从上往下打印二叉树(Java),力扣刷题,算法,数据结构,java

解题思路:
使用队列

首先,队列是尾部插入,头部删除的一种数据结构。在遍历树的过程中使用层序遍历的话,是从根开始由左向右进行遍历的,那么我们在遍历树的时候将当前根的结点存入到队列中去,遍历到结点时将其从队列中删除,这样一来,队列poll方法获取的队列的头就是按从上到下顺序的。也就是我们要的结果。

JZ32 从上往下打印二叉树(Java),力扣刷题,算法,数据结构,java文章来源地址https://www.toymoban.com/news/detail-643419.html

整体代码:
    public static ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> res = new ArrayList<>();

        if (root == null)
            return res;

        Queue<TreeNode> q = new LinkedList<>();
        q.offer(root);
        while (!q.isEmpty()){
            TreeNode cur = q.poll();
            res.add(cur.val);
            if (cur.left!=null){
                q.add(cur.left);
            }
            if (cur.right != null)
                q.add(cur.right);
        }
        return res;
    }

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

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

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

相关文章

  • Leetcode-每日一题【剑指 Offer 32 - III. 从上到下打印二叉树 III】

    请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如: 给定二叉树:  [3,9,20,null,null,15,7] ,     3    /   9  20     /     15   7 返回其层次遍历结果:

    2024年02月12日
    浏览(41)
  • Leetcode-每日一题【剑指 Offer 32 - II. 从上到下打印二叉树 II】

    从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树:  [3,9,20,null,null,15,7] ,     3    /   9  20     /     15   7 返回其层次遍历结果: [   [3],   [9,20],   [15,7] ] 提示: 节点总数 = 1000 1.题目要求我们从上到下按层打印二

    2024年02月12日
    浏览(44)
  • LeetCode——从上到下打印二叉树 II

    题目来源 剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣(LeetCode) 题目 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 示例 给定二叉树:[3,9,20,null,null,15,7] 返回其层次遍历结果:  解析: 该题是二叉树层次遍历的另一种形式,要想做

    2024年02月11日
    浏览(37)
  • 力扣101 对称二叉树 Java版本

    给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3] 输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3] 输出:false 提示: 树中节点数目在范围 [1, 1000] 内 -100 = Node.val = 100 进阶:你可以运用递归和迭代两种方法解决这个问题吗? 思路在代码中

    2024年02月22日
    浏览(40)
  • 力扣-根据前序和后序遍历构造二叉树(java)

    原题链接: https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-postorder-traversal/ 题目描述: 给定两个整数数组,preorder 和 postorder ,其中 preorder 是一个具有 无重复 值的二叉树的前序遍历,postorder 是同一棵树的后序遍历,重构并返回二叉树。 如果存在多个答案,您可以返回

    2024年02月08日
    浏览(45)
  • 力扣刷题-二叉树-合并二叉树

    合并二叉树是操作两棵树的题目里面很经典的,如何对两棵树遍历以及处理? 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为

    2024年01月17日
    浏览(45)
  • 力扣---二叉树OJ题(多种题型二叉树)

    👧 个人主页 :@小沈熬夜秃头中୧⍤⃝❅ 😚 小编介绍 :欢迎来到我的乱七八糟小星球🌝 📋 专栏 :力扣—LeetCode刷题 🔑 本章内容 :力扣—二叉树OJ题 送给各位 💌:活着就意味着要必须做点什么 请好好努力 欢迎 评论📝 +点赞👍 +收藏😽 +关注💞哦~ 提示:以下是本篇

    2024年02月07日
    浏览(41)
  • 二刷力扣--二叉树(2)

    给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 使用递归解决。 确定函数参数和返回值 函数参数为当前节点cur。无返回值。 确定终止条件。当前节点为空则终止。 单层逻辑 反转当前节点的左右,然后递归调用cur.left, cur.right 完整代码如下: 给你一个二

    2024年02月07日
    浏览(46)
  • 翻转二叉树,力扣

    目录 题目地址: 题目: 我们直接看题解吧: 快速理解解题思路小建议: 解题方法: 方法分析: 解题分析: 具体流程: 代码实现(递归): 补充说明: 解题思路(利用栈/队列): 具体流程: 226. 翻转二叉树 - 力扣(LeetCode) 难度:简单 今天刷翻转二叉树,大家有兴趣可以点

    2024年01月23日
    浏览(33)
  • 【力扣 - 翻转二叉树】

    给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 树中节点数目范围在 [0, 100] 内 这是一道很经典的二叉树问题。显然,我们从根节点开始,递归地对树进行遍历,并从叶子节点先开始翻转。如果当前遍历到的节点 root 的左右两棵子树都已经翻转,那么我们

    2024年02月22日
    浏览(28)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包