首页
比赛
tracker
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
把二叉树打印成多行
167条解析
开通博客写题解
牛客题解官
发表于 2020-06-01 16:44:55
题目主要信息: 将一棵n个节点的二叉树按照从上到下按层的方式打印,每层按照从左到右的顺序输出。 举一反三: 学习完本题的思路你可以解决如下题目: JZ77. 按之字形顺序打印二叉树 JZ32. 从上往下打印二叉树 方法一:非递归层次遍历(推荐使用) 知识点:队列 队列是一种仅支持在表尾进行插入操作、
展开全文
牛客786963925号
发表于 2021-07-08 18:30:04
解法一:递归 递归方法通过定义递归函数helper,遍历树的每一层,并将结果放入结果数组res的相应位置,因此需要定义level变量以记录当前访问到的层数。在完成对某一凑层的遍历时,按照相同方式递归地访问左孩子和右孩子,且层数加1。 实现代码如下: /* struct TreeNode {
展开全文
江南好___
发表于 2021-07-14 19:56:32
描述 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 示例 输入:{8,6,10,5,7,9,11} 返回值:[[8],[6,10],[5,7,9,11]]知识点:二叉树,BFS难度:⭐⭐⭐ 题解 解题思路 既然是最终结果是按层打印,分别收集每一层的结点的值,最容易想到
展开全文
牛客972033963
发表于 2019-10-01 16:29:41
这里我们需要用到一个数据结构,那就是队列。 核心思想:每次出队一个元素,就将该元素的孩子节点加入队列中,直至队列中元素个数为0时,出队的顺序就是该二叉树的层次遍历结果。 初始状态下,队列中只保留根节点的元素: 当A出队时,将A的孩子节点加入队列中: 重复上面的动作,队首元素出队时,将孩子节点加
展开全文
不刷题就会白给
发表于 2020-03-03 21:35:40
思路:做这题前先看看从上往下打印二叉树 import java.util.*; public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { Arr
展开全文
叫我皮卡丘
发表于 2019-08-14 09:49:13
【剑指offer】把二叉树打印成多行 --Java实现 题解 层序遍历大家应该都不陌生,这道题最关键的点在于如何保存层数信息,用变量 deep 存储层数信息,子树的 deep+1,该 deep 可以作为 Lists 的索引: 当 deep >= lists 的大小,说明该层还未被存入过 li
展开全文
一叶浮尘
发表于 2020-03-02 15:29:18
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 想当初自己在这种题目上栽了一个跟头,本应该是使用arraylist存储每一行节点,但是其实用queue存储之后整个程序的判断逻辑就清楚很多,因此数据结构活学活用,就非常好了。 import java.util.ArrayList;
展开全文
ccจุ๊บ
发表于 2020-02-18 21:25:07
思路:用两个列表分别保存当前层节点和下一层节点,结果.append([i.val for i in 当前层节点]),然后 当前层列表,下一层列表 = 下一层列表, [] 即可,直到当前层为空 class Solution: def Print(self, pRoot): #
展开全文
头都大了
发表于 2020-02-06 20:58:27
import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; /* public class TreeNode { int val = 0; TreeNode left = nul
展开全文
xiongqiangcs
发表于 2020-04-20 23:54:31
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(N
展开全文
Ironxin
发表于 2020-03-24 17:14:04
题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 刚开始想法是用的print,然后看到题目给的是ArrayList<ArrayList<Integer> >还有点小懵逼。其实是让你返回一个ArrayList,其中每个元素都是一个装了整型数据的Arra
展开全文
aidisen
发表于 2020-03-16 16:29:12
思路很简单,一切尽在代码中,我自己认为的精华就是代码中count这一行 ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) { ArrayList<ArrayList<Integer>>
展开全文
无名者
发表于 2020-03-16 01:33:38
这个题解方法应该没人写吧,代码多,但容易理解,双队列 import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; /* public class TreeNode { int val =
展开全文
查看本题
查看本题讨论
等你来战
查看全部
牛客小白月赛126
报名截止时间:2025-12-26 21:00
牛客周赛 Round 124
报名截止时间:2025-12-28 21:00
牛客2025跨年场
报名截止时间:2026-01-01 00:05
2026牛客寒假算法基础集训营1
报名截止时间:2026-02-03 18:00
2026牛客寒假算法基础集训营2
报名截止时间:2026-02-05 18:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题