#yyds干货盘点#面试必刷top101:求二叉树的层序遍历

97的风 97的风     2022-12-01     793

关键词:

1.简述:

描述

给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)

例如:

给定的二叉树是3,9,20,#,#,15,7,

#yyds干货盘点#

该二叉树层序遍历的结果是

[

[3],

[9,20],

[15,7]

]

数据范围:二叉树的节点数满足 

示例1

输入:

1,2

返回值:

[[1],[2]]

示例2

输入:

1,2,3,4,#,#,5

返回值:

[[1],[2,3],[4,5]]

2.代码实现:

import java.util.*;

public class Solution
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root)
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
if(root == null)
return res;

// 队列保存每一层所有结点
Queue<TreeNode> queue = new LinkedList<>();
// 先放入根节点
queue.offer(root);
while(!queue.isEmpty())
// 收集当前层的所有结点的值
ArrayList<Integer> list = new ArrayList<>();
// ·当前层的节点数量
int count = queue.size();
// 遍历每一层
while(count-- > 0)
// 从对头取出节点
TreeNode node = queue.poll();
// 收集结果
list.add(node.val);
// 左右节点按顺序加到队尾
if(node.left != null)
queue.offer(node.left);

if(node.right != null)
queue.offer(node.right);


res.add(list);

return res;

#yyds干货盘点#面试必刷top101:序列化二叉树

1.简述:描述请实现两个函数,分别用来序列化和反序列化二叉树,不对序列化之后的字符串进行约束,但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。二叉树的序列化(Serialize)是指:把一棵二叉树按... 查看详情

#yyds干货盘点#面试必刷top101:判断是不是平衡二叉树

1.简述:描述输入一棵节点数为n二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(BalancedBinaryTree),具有以下性质:它是一棵空树或它的左右两个子树的... 查看详情

#yyds干货盘点#面试必刷top101:二叉树的中序遍历

1.简述:描述给定一个二叉树的根节点root,返回它的中序遍历结果。数据范围:树上节点数满足 ,树上每个节点的值满足 进阶:空间复杂度 ,时间复杂度 示例1输入:1,2,#,#,3返回值:[2,3,1]说明:示例2输入:返回... 查看详情

#yyds干货盘点#面试必刷top101:在二叉树中找到两个节点的最近公共祖先

1.简述:描述给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值o1 和 o2,请找到o1 和 o2 的最近公共祖先节点。数据范围:树上节点数满足  ,节点值val满足区间[0,n)要求:时间复杂度 注:... 查看详情

#yyds干货盘点#面试必刷top101:岛屿数量

1.简述:描述给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿:相邻陆地可以组成一个岛屿(相邻:上下左右)判断岛屿个数。例如:输入[[1,1,0,0,0],[0,1,0,... 查看详情

#yyds干货盘点#面试必刷top101:反转字符串

1.简述:描述写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)数据范围: 要求:空间复杂度 ,时间复杂度 示例1输入:"abcd"返回值:"dcba"示例2输入:""返回值:""2.代码... 查看详情

#yyds干货盘点#面试必刷top101:单链表的排序

1.简述:描述给定一个节点数为n的无序单链表,对其按升序排序。数据范围:要求:时间复杂度 示例1输入:1,3,2,4,5返回值:1,2,3,4,5示例2输入:-1,0,-2返回值:-2,-1,02.代码实现:importjava.util.*;/**publicclassListNode*intval;*ListNodenext=n... 查看详情

#yyds干货盘点#面试必刷top101:跳台阶

1.简述:描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:要求:时间复杂度: ,空间复杂度: 示例1输入:2返回值:2说明... 查看详情

#yyds干货盘点#面试必刷top101:最长公共子串

1.简述:描述给定两个字符串str1和str2,输出两个字符串的最长公共子串题目保证str1和str2的最长公共子串存在且唯一。 数据范围: 要求:空间复杂度 ,时间复杂度 示例1输入:"1AB2345CD","12345EF"返回值:"2345"2.代码... 查看详情

#yyds干货盘点#面试必刷top101:二分查找-i

1.简述:描述请实现无重复数字的升序数组的二分查找给定一个元素升序的、无重复数字的整型数组nums 和一个目标值target ,写一个函数搜索nums 中的target,如果目标值存在返回下标(下标从0开始),否则返回-1数据... 查看详情

#yyds干货盘点#面试必刷top101:三数之和

1.简述:描述给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。数据范围:,数组中各个元素值满足 空间复杂度:,时间复杂度 注意:三元组(a、b、c)中的元素可以按任意... 查看详情

#yyds干货盘点#面试必刷top101:最小花费爬楼梯

1.简述:描述给定一个整数数组  ,其中  是从楼梯第个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你... 查看详情

#yyds干货盘点#面试必刷top101:反转链表

1.简述:描述给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 要求:空间复杂度  ,时间复杂度  。如当输入链表1,2,3时,... 查看详情

#yyds干货盘点#面试必刷top101:最长无重复子数组

1.简述:描述给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组数据范围:,示例1输入:[2,3,... 查看详情

#yyds干货盘点#面试必刷top101:比较版本号

1.简述:描述项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等现在给你2个版本号version1和version2,请你比较他们的大小版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订号可... 查看详情

#yyds干货盘点#面试必刷top101:链表内指定区间反转

1.简述:描述将一个节点数为size链表m 位置到 n位置之间的区间反转,要求时间复杂度 ,空间复杂度 。例如:给出的链表为 , ,返回 查看详情

#yyds干货盘点#面试必刷top101:矩阵的最小路径和

1.简述:描述给定一个 n*m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。数据范围: ,矩阵中任意值都满足&n... 查看详情

#yyds干货盘点#面试必刷top101:斐波那契数列

1.简述:描述大家都知道斐波那契数列,现在要求输入一个正整数n,请你输出斐波那契数列的第n项。斐波那契数列是一个满足  的数列数据范围:要求:空间复杂度 ,时间复杂度  ,本题也有时间复杂度 查看详情