摘要:
148. 排序链表 Difficulty: 中等 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 进阶: 你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗? 示例 1: 输入:head = [4,2,1,3] 输出:[1,2,3,4] 示例
阅读全文
posted @ 2020-12-29 23:21
swordspoet
阅读(84)
推荐(0)
摘要:
147. 对链表进行插入排序 Difficulty: 中等 对链表进行插入排序。 插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。 插入排序算法: 插入排序是迭代的,每次只移
阅读全文
posted @ 2020-12-28 22:28
swordspoet
阅读(74)
推荐(0)
摘要:
142. 环形链表 II Difficulty: 中等 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是
阅读全文
posted @ 2020-12-27 20:57
swordspoet
阅读(67)
推荐(0)
摘要:
328. 奇偶链表 Difficulty: 中等 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点
阅读全文
posted @ 2020-12-26 22:02
swordspoet
阅读(68)
推荐(0)
摘要:
25. K 个一组翻转链表 Difficulty: 困难 给你一个链表,每 _k _个节点一组进行翻转,请你返回翻转后的链表。 _k _是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 _k _的整数倍,那么请将最后剩余的节点保持原有顺序。 示例: 给你这个链表:1->2->3->4->
阅读全文
posted @ 2020-12-26 20:26
swordspoet
阅读(58)
推荐(0)
摘要:
234. 回文链表 Difficulty: 简单 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? Solution Language
阅读全文
posted @ 2020-12-24 22:23
swordspoet
阅读(57)
推荐(0)
摘要:
143. 重排链表 Difficulty: 中等 给定一个单链表 L:L0→_L_1→…→_L_n-1→_L_n , 将其重新排列后变为: L0→_L_n→_L_1→_L_n-1→_L_2→_L_n-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->
阅读全文
posted @ 2020-12-24 13:00
swordspoet
阅读(97)
推荐(0)
摘要:
86. 分隔链表 Difficulty: 中等 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2-
阅读全文
posted @ 2020-12-20 20:36
swordspoet
阅读(69)
推荐(0)
摘要:
82. 删除排序链表中的重复元素 II Difficulty: 中等 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 _没有重复出现 _的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出:
阅读全文
posted @ 2020-12-20 17:57
swordspoet
阅读(58)
推荐(0)
摘要:
24. 两两交换链表中的节点 Difficulty: 中等 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = []
阅读全文
posted @ 2020-12-20 16:15
swordspoet
阅读(49)
推荐(0)
摘要:
23. 合并K个升序链表 Difficulty: 困难 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下
阅读全文
posted @ 2020-12-20 15:03
swordspoet
阅读(60)
推荐(0)
摘要:
19. 删除链表的倒数第 N 个结点 Difficulty: 中等 给你一个链表,删除链表的倒数第 n个结点,并且返回链表的头结点。 **进阶:**你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2: 输入:head
阅读全文
posted @ 2020-12-20 12:32
swordspoet
阅读(95)
推荐(0)
摘要:
92. 反转链表 II Difficulty: 中等 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL Soluti
阅读全文
posted @ 2020-12-20 11:28
swordspoet
阅读(63)
推荐(0)
摘要:
206. 反转链表 Difficulty: 简单 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? Solution 这是一道最容易被考察的题目,迭代和递归的解法
阅读全文
posted @ 2020-12-14 22:18
swordspoet
阅读(64)
推荐(0)
摘要:
449. 序列化和反序列化二叉搜索树 Difficulty: 中等 序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。 设计一个算法来序列化和反序列化 二叉搜索树 。 对序列化/反序列化算法的工作方式没
阅读全文
posted @ 2020-12-09 23:45
swordspoet
阅读(63)
推荐(0)
摘要:
144. 二叉树的前序遍历 Difficulty: 中等 给你二叉树的根节点 root ,返回它节点值的 前序遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1]
阅读全文
posted @ 2020-12-08 22:14
swordspoet
阅读(65)
推荐(0)
摘要:
590. N叉树的后序遍历 Difficulty: 简单 给定一个 N 叉树,返回其节点值的_后序遍历_。 例如,给定一个 3叉树 : 返回其后序遍历: [5,6,3,2,4,1]. 说明: 递归法很简单,你可以使用迭代法完成此题吗? Solution Language: **** 直接迭代后序遍历
阅读全文
posted @ 2020-12-08 19:56
swordspoet
阅读(59)
推荐(0)
摘要:
589. N叉树的前序遍历 Difficulty: 简单 给定一个 N 叉树,返回其节点值的_前序遍历_。 例如,给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]。 **说明: **递归法很简单,你可以使用迭代法完成此题吗? Solution Language: **** """
阅读全文
posted @ 2020-12-08 14:10
swordspoet
阅读(64)
推荐(0)
摘要:
559. N 叉树的最大深度 Difficulty: 简单 给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。 示例 1: 输入:root = [1,null,3,2,4,null,
阅读全文
posted @ 2020-12-08 13:34
swordspoet
阅读(121)
推荐(0)
摘要:
637. 二叉树的层平均值 Difficulty: 简单 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1: 输入: 3 / \ 9 20 / \ 15 7 输出:[3, 14.5, 11] 解释: 第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回
阅读全文
posted @ 2020-12-08 13:01
swordspoet
阅读(73)
推荐(0)
摘要:
515. 在每个树行中找最大值 Difficulty: 中等 您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9] Solution Language: **** BFS+queue实现层序遍历,十分easy,一次AC。 #
阅读全文
posted @ 2020-12-07 13:45
swordspoet
阅读(78)
推荐(0)
摘要:
513. 找树左下角的值 Difficulty: 中等 给定一个二叉树,在树的最后一行找到最左边的值。 示例 1: 输入: 2 / \ 1 3 输出: 1 示例 2: 输入: 1 / \ 2 3 / / \ 4 5 6 / 7 输出: 7 注意: 您可以假设树(即给定的根节点)不为 NULL。 So
阅读全文
posted @ 2020-12-07 13:38
swordspoet
阅读(72)
推荐(0)
摘要:
501. 二叉搜索树中的众数 Difficulty: 简单 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树
阅读全文
posted @ 2020-12-07 10:39
swordspoet
阅读(64)
推荐(0)
摘要:
404. 左叶子之和 Difficulty: 简单 计算给定二叉树的所有左叶子之和。 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 Solution Language: **** 思路一:迭代 **以下是错误解法:**用层序遍历上
阅读全文
posted @ 2020-12-06 20:50
swordspoet
阅读(45)
推荐(0)
摘要:
450. 删除二叉搜索树中的节点 Difficulty: 中等 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 **key **对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。 一般来说,删除节点可分为两个步骤: 首先找到需要删除的节
阅读全文
posted @ 2020-12-06 20:39
swordspoet
阅读(59)
推荐(0)
摘要:
437. 路径总和 III Difficulty: 中等 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-100
阅读全文
posted @ 2020-12-06 14:57
swordspoet
阅读(76)
推荐(0)
摘要:
429. N 叉树的层序遍历 Difficulty: 中等 给定一个 N 叉树,返回其节点值的_层序遍历_。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1: 输入:root = [1,null,3,2,4,null,5,6] 输出:[
阅读全文
posted @ 2020-12-06 13:44
swordspoet
阅读(71)
推荐(0)
摘要:
213. 打家劫舍 II Difficulty: 中等 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。
阅读全文
posted @ 2020-12-06 13:30
swordspoet
阅读(68)
推荐(0)
摘要:
337. 打家劫舍 III Difficulty: 中等 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树
阅读全文
posted @ 2020-12-05 21:36
swordspoet
阅读(51)
推荐(0)
摘要:
198. 打家劫舍 Difficulty: 简单 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装
阅读全文
posted @ 2020-12-05 17:53
swordspoet
阅读(78)
推荐(0)
摘要:
236. 二叉树的最近公共祖先 Difficulty: 中等 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
阅读全文
posted @ 2020-12-03 21:45
swordspoet
阅读(88)
推荐(0)
摘要:
235. 二叉搜索树的最近公共祖先 Difficulty: 简单 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖
阅读全文
posted @ 2020-12-03 10:21
swordspoet
阅读(71)
推荐(0)
摘要:
257. 二叉树的所有路径 Difficulty: 简单 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5,
阅读全文
posted @ 2020-12-02 23:40
swordspoet
阅读(66)
推荐(0)
摘要:
230. 二叉搜索树中第K小的元素 Difficulty: 中等 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 **k **个最小的元素。 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。 示例 1: 输入: root = [3,1,4,null,2
阅读全文
posted @ 2020-12-02 19:56
swordspoet
阅读(55)
推荐(0)
摘要:
99. 恢复二叉搜索树 Difficulty: 困难 给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。 **进阶:**使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗? 示例 1: 输入:root = [1,3
阅读全文
posted @ 2020-12-02 19:37
swordspoet
阅读(78)
推荐(0)
摘要:
226. 翻转二叉树 Difficulty: 简单 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 的 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),
阅读全文
posted @ 2020-12-01 22:44
swordspoet
阅读(70)
推荐(0)
摘要:
199. 二叉树的右视图 Difficulty: 中等 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 < / \ 2 3 < \ \ 5 4 < Solu
阅读全文
posted @ 2020-12-01 19:51
swordspoet
阅读(59)
推荐(0)
摘要:
222. 完全二叉树的节点个数 Difficulty: 中等 给出一个完全二叉树,求出该树的节点个数。 说明: 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。
阅读全文
posted @ 2020-12-01 19:28
swordspoet
阅读(74)
推荐(0)
摘要:
173. 二叉搜索树迭代器 Difficulty: 中等 实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 示例: BSTIterator iterator = new BSTIterator(root); iterator
阅读全文
posted @ 2020-12-01 14:18
swordspoet
阅读(87)
推荐(0)
摘要:
序号 题目 难度 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
阅读全文
posted @ 2020-12-01 10:42
swordspoet
阅读(81)
推荐(0)