算法
豪冷啊
@Haomissyou,iOS开发工程师,个人作品:小五笔,小笔记,小汉字,小挑战,小编辑器等等
展开
-
【二叉树】特定深度节点链表
题目给定一棵二叉树,设计一个算法创建含有某一深度上所有节点的链表比如,若一棵树的深度为 D,则会创建出 D 个链表返回一个包含所有深度的链表的数组原创 2022-08-23 10:29:05 · 331 阅读 · 0 评论 -
【二叉树】二叉搜索树中的中序后继
题目给定一棵二叉搜索树和其中的一个节点 p找到该节点在树中的中序后继如果节点没有中序后继,请返回 null节点 p 的后继是值比 p.val 大的节点中键值最小的节点即按中序遍历的顺序节点 p 的下一个节点...原创 2022-08-17 10:39:01 · 832 阅读 · 1 评论 -
【二叉树】二叉搜索树的后序遍历序列
题目输入一个整数数组判断该数组是不是某二叉搜索树的后序遍历结果如果是则返回 true,否则返回 false假设输入的数组的任意两个数字都互不相同原创 2022-08-10 16:09:01 · 111 阅读 · 0 评论 -
【二叉树】树的子结构
题目输入两棵二叉树A和B,判断B是不是A的子结构约定空树不是任意一个树的子结构B是A的子结构即 A 中有出现和 B 相同的结构和节点值原创 2022-08-09 11:45:25 · 477 阅读 · 0 评论 -
【二叉树】重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果请构建该二叉树并返回其根节点假设输入的前序遍历和中序遍历的结果中都不含重复的数字原创 2022-08-08 09:40:47 · 362 阅读 · 0 评论 -
【二叉树】统计值等于子树平均值的节点数
题目给你一棵二叉树的根节点 root找出并返回满足要求的节点数要求节点的值等于其 子树 中值的 平均值注意:n 个元素的平均值可以由 n 个元素 求和 然后再除以 n并 向下舍入 到最近的整数root 的 子树 由 root 和它的所有后代组成...原创 2022-08-05 11:08:07 · 279 阅读 · 0 评论 -
【二叉树】根据描述创建二叉树
题目给你一个二维整数数组 descriptions其中 descriptions[i] = [parenti, childi, isLefti] 表示parenti 是 childi 在 二叉树 中的 父节点二叉树中各节点的值 互不相同此外:如果 isLefti == 1 ,那么 childi 就是 parenti 的左子节点如果 isLefti == 0 ,那么 childi 就是 parenti 的右子节点请你根据 descriptions 的描述来构造二叉树并返回其 根节点...原创 2022-08-04 10:32:34 · 222 阅读 · 0 评论 -
【二叉树】从二叉树一个节点到另一个节点每一步的方向
题目给你一棵 二叉树 的根节点 root这棵二叉树总共有 n 个节点每个节点的值为 1 到 n 中的一个整数且互不相同给你一个整数 startValue表示起点节点 s 的值和另一个不同的整数 destValue表示终点节点 t 的值请找到从节点 s 到节点 t 的 最短路径并以字符串的形式返回每一步的方向每一步用 大写 字母 ‘L’ ,‘R’ 和 ‘U’ 分别表示一种方向:L 表示从一个节点前往它的 左孩子 节点R 表示从一个节点前往它的 右孩子 节点U 表示从一个节点前往原创 2022-08-03 10:03:22 · 384 阅读 · 0 评论 -
【二叉树】统计最高分的节点数目
题目给你一棵根节点为 0 的 二叉树它总共有 n 个节点节点编号为 0 到 n - 1同时给你一个下标从 0 开始的整数数组 parents 表示这棵树其中 parents[i] 是节点 i 的父节点由于节点 0 是根,所以 parents[0] == -1一个子树的 大小 为这个子树内节点的数目每个节点都有一个与之关联的 分数求出某个节点分数的方法是将这个节点和与它相连的边全部 删除剩余部分是若干个 非空 子树这个节点的 分数 为所有这些子树 大小的乘积请你返回有 最高得分原创 2022-08-02 09:53:54 · 119 阅读 · 0 评论 -
【二叉树】奇偶树
题目如果一棵二叉树满足下述几个条件则可以称为 奇偶树:二叉树根节点所在层下标为 0根的子节点所在层下标为 1根的孙节点所在层下标为 2 ,依此类推偶数下标 层上的所有节点的值都是 奇 整数从左到右按顺序 严格递增奇数下标 层上的所有节点的值都是 偶 整数从左到右按顺序 严格递减给你二叉树的根节点如果二叉树为 奇偶树 ,则返回 true ,否则返回 false...原创 2022-08-01 09:42:34 · 518 阅读 · 0 评论 -
【二叉树】好叶子节点对的数量
题目给你二叉树的根节点 root 和一个整数 distance如果二叉树中两个 叶 节点之间的 最短路径长度小于或者等于 distance那它们就可以构成一组 好叶子节点对返回树中 好叶子节点对的数量原创 2022-07-29 10:35:06 · 152 阅读 · 0 评论 -
【二叉树】二叉树中的伪回文路径
题目给你一棵二叉树,每个节点的值为 1 到 9我们称二叉树中的一条路径是 「伪回文」的当它满足:路径经过的所有节点值的排列中存在一个回文序列请你返回从根到叶子节点的所有路径中伪回文 路径的数目...原创 2022-07-28 12:23:59 · 443 阅读 · 0 评论 -
【二叉树】统计二叉树中好节点的数目
题目给你一棵根为 root 的二叉树请你返回二叉树中好节点的数目「好节点」X 定义为:从根到该节点 X 所经过的节点中没有任何节点的值大于 X 的值原创 2022-07-27 13:57:14 · 483 阅读 · 0 评论 -
【二叉树】将二叉搜索树变平衡
题目给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树新生成的树应该与原来的树有着相同的节点值如果有多种构造方法,请你返回任意一种如果一棵二叉搜索树中每个节点的两棵子树高度差不超过 1我们就称这棵二叉搜索树是 平衡的...原创 2022-07-26 10:48:28 · 477 阅读 · 0 评论 -
【二叉树】二叉树中的最长交错路径
题目给你一棵以 root 为根的二叉树,二叉树中的交错路径定义如下:选择二叉树中 任意 节点和一个方向(左或者右)如果前进方向为右,那么移动到当前节点的的右子节点否则移动到它的左子节点改变前进方向:左变右或者右变左重复第二步和第三步,直到你在树中无法继续移动交错路径的长度定义为:访问过的节点数目 - 1(单个节点的路径长度为 0 )请你返回给定树中最长 交错路径 的长度...原创 2022-07-25 10:41:33 · 277 阅读 · 0 评论 -
【二叉树】二叉树中的列表
题目给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表如果在二叉树中,存在一条一直向下的路径且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则返回 False一直向下的路径的意思是:从树中某个节点开始,一直连续向下的路径...原创 2022-07-22 12:01:12 · 237 阅读 · 0 评论 -
【二叉树】验证二叉树
题目二叉树上有 n 个节点,按从 0 到 n - 1 编号其中节点 i 的两个子节点分别是 leftChild[i] 和 rightChild[i]只有 所有 节点能够形成且 只 形成 一颗 有效的二叉树时返回 true;否则返回 false如果节点 i 没有左子节点,那么 leftChild[i] 就等于 -1右子节点也符合该规则注意:节点没有值,本问题中仅仅使用节点编号...原创 2022-07-21 10:02:03 · 267 阅读 · 0 评论 -
【二叉树】分裂二叉树的最大乘积
题目给你一棵二叉树,它的根为 root请你删除 1 条边,使二叉树分裂成两棵子树且它们子树和的乘积尽可能大由于答案可能会很大请你将结果对 10^9 + 7 取模后再返回原创 2022-07-20 11:27:28 · 321 阅读 · 0 评论 -
【二叉树】删除给定值的叶子节点
题目给你一棵以 root 为根的二叉树和一个整数 target请你删除所有值为 target 的 叶子节点注意,一旦删除值为 target 的叶子节点它的父节点就可能变成叶子节点如果新叶子节点的值恰好也是 target那么这个节点也应该被删除也就是说,你需要重复此过程直到不能继续删除...原创 2022-07-19 10:23:54 · 668 阅读 · 0 评论 -
【二叉树】祖父节点值为偶数的节点和
题目给你一棵二叉树请你返回满足以下条件的所有节点的值之和:该节点的祖父节点的值为偶数一个节点的祖父节点是指该节点的父节点的父节点如果不存在祖父节点值为偶数的节点,那么返回 0...原创 2022-07-18 10:50:24 · 441 阅读 · 0 评论 -
【二叉树】两棵二叉搜索树中的所有元素
题目给你 root1 和 root2 这两棵二叉搜索树请你返回一个列表其中包含 两棵树 中的所有整数并按 升序 排序原创 2022-07-15 09:42:25 · 118 阅读 · 0 评论 -
【二叉树】层数最深叶子节点的和
题目给你一棵二叉树的根节点 root请你返回 层数最深 的叶子节点的和原创 2022-07-14 10:46:12 · 527 阅读 · 0 评论 -
【二叉树】在受污染的二叉树中查找元素
题目给出一个满足下述规则的二叉树:root.val == 0如果 treeNode.val == x 且 treeNode.left != null那么 treeNode.left.val == 2 * x + 1如果 treeNode.val == x 且 treeNode.right != null那么 treeNode.right.val == 2 * x + 2现在这个二叉树受到「污染」,所有的 treeNode.val 都变成了 -1请你先还原二叉树,然后实现 FindEleme原创 2022-07-13 09:40:57 · 149 阅读 · 0 评论 -
【二叉树】最大层内元素和
题目给你一个二叉树的根节点 root设根节点位于二叉树的第 1 层而根节点的子节点位于第 2 层依此类推请返回层内元素之和最大 的那几层(可能只有一层)的层号并返回其中 最小 的那个原创 2022-07-12 12:20:12 · 492 阅读 · 1 评论 -
【二叉树】二叉树着色游戏
题目有两位极客玩家参与了一场「二叉树着色」的游戏游戏中,给出二叉树的根节点 root,树上总共有 n 个节点且 n 为奇数,其中每个节点上的值从 1 到 n 各不相同游戏从「一号」玩家开始(「一号」玩家为红色,「二号」玩家为蓝色)最开始时「一号」玩家从 [1, n] 中取一个值 x(1 ......原创 2022-07-11 09:45:13 · 825 阅读 · 0 评论 -
【二叉树】删点成林
题目给出二叉树的根节点 root树上每个节点都有一个不同的值如果节点值在 to_delete 中出现我们就把该节点从树上删去最后得到一个森林(一些不相交的树构成的集合)返回森林中的每棵树你可以按任意顺序组织答案...原创 2022-07-07 09:42:15 · 188 阅读 · 0 评论 -
【二叉树】二叉树寻路
题目在一棵无限的二叉树上,每个节点都有两个子节点树中的节点 逐行 依次按 “之” 字形进行标记如下图所示在奇数行(即,第一行、第三行、第五行……)中,按从左到右的顺序进行标记而偶数行(即,第二行、第四行、第六行……)中,按从右到左的顺序进行标记给你树上某一个节点的标号 label请你返回从根节点到该标号为 label 节点的路径该路径是由途经的节点标号所组成的...原创 2022-07-06 10:51:37 · 306 阅读 · 0 评论 -
【二叉树】根到叶路径上的不足节点
题目给定一棵二叉树的根 root考虑它所有从根到任何叶 路径假如通过节点 node 的每种可能的 “根-叶”路径上值的总和全都小于给定的 limit则该节点被称之为不足节点,需要被删除请你删除所有不足节点,并返回生成的二叉树的根...原创 2022-07-05 10:21:11 · 139 阅读 · 0 评论 -
【二叉树】节点与其祖先之间的最大差值
题目给定二叉树的根节点 root找出存在于 不同 节点 A 和 B 之间的最大值 V其中 V = |A.val - B.val|且 A 是 B 的祖先如果 A 的任何子节点之一为 B或者 A 的任何子节点是 B 的祖先那么我们认为 A 是 B 的祖先...原创 2022-07-04 10:00:37 · 263 阅读 · 0 评论 -
【二叉树】前序遍历构造二叉搜索树
题目给定一个整数数组它表示BST(即二叉搜索树 )的 先序遍历构造树并返回其根节点原创 2022-06-30 09:37:35 · 944 阅读 · 0 评论 -
【二叉树】最大二叉树 II
题目最大树定义:一棵树,其中每个节点的值都大于其子树中的任何其他值给你最大树的根节点 root 和一个整数 val把 val 插入这棵树并返回新的最大二叉树的根节点原创 2022-06-29 09:44:13 · 213 阅读 · 0 评论 -
【二叉树】从叶结点开始的最小字符串
题目给定一颗根结点为 root 的二叉树树中的每一个结点都有一个 [0, 25] 范围内的值分别代表字母 a 到 z返回 按字典序最小 的字符串该字符串从这棵树的一个叶结点开始到根结点结束原创 2022-06-28 11:08:16 · 631 阅读 · 0 评论 -
【二叉树】在二叉树中分配硬币
题目给定一个有 N 个结点的二叉树的根结点 root树中的每个结点上都对应有 node.val 枚硬币并且总共有 N 枚硬币在一次移动中,我们可以选择两个相邻的结点然后将一枚硬币从其中一个结点移动到另一个结点移动可以是从父结点到子结点,或者从子结点移动到父结点返回使每个结点上只有一枚硬币所需的移动次数...原创 2022-06-27 10:11:19 · 164 阅读 · 0 评论 -
【二叉树】翻转二叉树以匹配先序遍历
题目给你一棵二叉树的根节点 root树中有 n 个节点每个节点都有一个不同于其他节点且处于 1 到 n 之间的值另给你一个由 n 个值组成的行程序列 voyage表示预期的二叉树 先序遍历 结果通过交换节点的左右子树可以 翻转 该二叉树中的任意节点请翻转 最少 的树中节点使二叉树的 先序遍历 与预期的遍历行程 voyage 相匹配如果可以,则返回 翻转的 所有节点的值的列表你可以按任何顺序返回答案如果不能,则返回列表 [-1]...原创 2022-06-23 10:29:30 · 188 阅读 · 0 评论 -
【二叉树】二叉树的完全性检验
题目给定一个二叉树的 root确定它是否是一个 完全二叉树在一个 完全二叉树 中除了最后一个节点外所有节点都是完全被填满的并且最后一个节点中的所有节点都是尽可能靠左的它可以包含 1 到 2h 节点之间的最后一级 h...原创 2022-06-22 09:34:08 · 188 阅读 · 0 评论 -
【二叉树】翻转等价二叉树
题目我们可以为二叉树 T 定义一个翻转操作选择任意节点,然后交换它的左子树和右子树只要经过一定次数的翻转操作后能使 X 等于 Y我们就称二叉树 X 翻转 等价 于二叉树 Y这些树由根节点 root1 和 root2 给出如果两个二叉树是翻转 等价 的则返回 true ,否则返回 false...原创 2022-06-21 09:45:57 · 412 阅读 · 0 评论 -
【二叉树】完全二叉树插入器
题目完全二叉树是每一层都是完全填充除最后一层外即,节点数达到最大的并且所有的节点都尽可能地集中在左侧设计一种算法将一个新节点插入到一个完整的二叉树中并在插入后保持其完整...原创 2022-06-17 16:29:31 · 251 阅读 · 0 评论 -
【二叉树】所有可能的满二叉树
题目满二叉树是一类二叉树其中每个节点恰好有 0 或 2 个子节点返回包含 N 个节点的所有可能满二叉树的列表答案的每个元素都是一个可能树的根节点答案中每个树的每个节点都必须有 node.val = 0你可以按任何顺序返回树的最终列表...原创 2022-06-16 09:56:56 · 304 阅读 · 0 评论 -
【二叉树】根据前序和后序遍历构造二叉树
题目给定两个整数数组preorder 和 postorder其中 preorder 是一个具有 无重复 值的二叉树的前序遍历postorder 是同一棵树的后序遍历重构并返回二叉树如果存在多个答案,您可以返回其中 任何 一个...原创 2022-06-15 09:59:13 · 2135 阅读 · 0 评论 -
【二叉树】具有所有最深节点的最小子树
题目给定一个根为 root 的二叉树每个节点的深度是该节点到根的最短距离返回包含原始树中所有 最深节点 的 最小子树如果一个节点在 整个树 的任意节点之间具有最大的深度则该节点是 最深的一个节点的 子树 是该节点加上它的所有后代的集合...原创 2022-06-14 15:12:55 · 213 阅读 · 0 评论