首页 > 把二叉树打印成多行
头像 牛客题解官
发表于 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 = 展开全文

等你来战

查看全部