
链表的回文结构
OR36 链表的回文结构 较难 通过率:30.09% 时间限制:3秒 空间限制:32M 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 测试样例: 根据回文对称的特点,先找到中间节点,可以运用快慢指针的方法找到中间节点。 然后将中间结点后面的结...

OR36 链表的回文结构 较难 通过率:30.09% 时间限制:3秒 空间限制:32M 对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。 给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。 测试样例: 根据回文对称的特点,先找到中间节点,可以运用快慢指针的方法找到中间节点。 然后将中间结点后面的结...
难度中等140 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢? 思路: 这道题与数组求和以及字符串求和类似,都是用每一位相加还有加上进位求得结果赋给一个新的链表 tmp,直到两个链表都遍历完。但记得最后判断是否还有多的一个进位需要加上。 题...
NC21 链表内指定区间反转 https://www.nowcoder.com/ta/jobcodehighweek?tag580) 将一个节点<font color'red'数为 size 链表 m 位置</font到<font color'green' n 位置之间的区间反转,要求时</font间复杂度 O(n),空间复杂度 O(1)。 例如: 给出的链表为 1→ 2→ 3 → 4→ 5 → ...

难度中等1940 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链...

难度中等2380 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 <img src"../../img/removeex1.jpg" alt"img" style"zoom:67%;" / 链表中结点的数目为 sz 1 < sz < 30 0 < Node.val < 100 1 < n < sz 进阶:你能尝试使用一趟扫描实现吗? 这道题就是寻找链表中倒数第 n...
难度中等 给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。 删除完毕后,请你返回最终结果链表的头节点。 你可以返回任何满足题目要求的答案。 (注意,下面示例中的所有序列,都是对 ListNode 对象序列化的表示。) 如果要遍历到每一组求和等于0的连续结点,可以从每个结点出发,遍历它的后缀和,如果它的后缀和等于0了...

难度中等1706 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 <img src"../../img/swapex1.jpg" alt"img" style"zoom:67%;" / 链表中节点的数目在范围 [0, 100] 内 0 < Node.val < 100 这道题要求说是两两交换,那么我们可...

难度困难387 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 2.5 设计一个支持以下两种操作的数据结构: void addNum(int num) 从数据流中添加...

621. 任务调度器 给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。 然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,...
难度中等 根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、、、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 注意: 两个整数之间的除法只保留整数部分。 可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 1 < tokens.length < 104 tokens[i] 是一个算符("+"、""、"" 或 "/"),或是在范...