代码编织梦想

[链表]leetcode1670-设计前中后队列-爱代码爱编程

[链表]–设计前中后队列 题目链接 leetcode 1670.设计前中后队列 题目 请你设计一个队列,支持在前,中,后三个位置的 push 和 pop 操作。 请你完成 FrontMiddleBack 类: FrontMiddleBack() 初始化队列。void pushFront(int val) 将 val 添加到队列的 最前面 。vo

[链表]leetcode237-删除链表中的节点-爱代码爱编程

[链表]–删除链表中的节点 题目链接 leetcode 237.删除链表中的节点 类似题目 相同题目 面试题 02.03.删除中间节点 题目 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。 示例 输入:head = [4,5,1,9], node = 5 输出:[4,1,9] 解释:给定

[链表]leetcode707-设计链表-爱代码爱编程

[链表]–设计链表 题目链接 leetcode 707.设计链表 题目 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index

[链表]leetcode25-K 个一组反转链表-爱代码爱编程

[链表]–K 个一组反转链表 题目链接 leetcode 25.K 个一组反转链表 题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例 给你这个链表:1->2->3->4->

[链表]leetcode23-合并 k 个升序链表-爱代码爱编程

[链表]–合并 k 个升序链表 题目链接 leetcode 23.合并 k 个升序链表 题目 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [

[链表]leetcode1367-二叉树中的列表-爱代码爱编程

[链表]–二叉树中的列表 题目链接 leetcode 1367.二叉树中的列表 题目 给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。 如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则返回 False 。 一直向下的路径的意思是:从树

[链表]leetcode1171-从链表中删去总和值为0的连续节点-爱代码爱编程

[链表]–从链表中删去总和值为0的连续节点 题目链接 leetcode 1171.从链表中删去总和值为0的连续节点 题目 给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。 删除完毕后,请你返回最终结果链表的头节点。 你可以返回任何满足题目要求的答案。 (注意,下面

[链表]leetcode1019-链表中的下一个更大节点-爱代码爱编程

[链表]–链表中的下一个更大节点 题目链接 leetcode 1019.链表中的下一个更大节点 题目 给出一个以头节点 head 作为第一个节点的链表。链表中的节点分别编号为:node_1, node_2, node_3, … 。 每个节点都可能有下一个更大值(next larger value):对于 node_i,如果其 next_large

[链表]leetcode817-链表组件-爱代码爱编程

[链表]–链表组件 题目链接 leetcode 817.链表组件 题目 给定链表头结点 head,该链表上的每个结点都有一个 唯一的整型值 。 同时给定列表 G,该列表是上述链表中整型值的一个子集。 返回列表 G 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。 示例 输入: head:

[链表]剑指Offer06-从尾到头打印链表-爱代码爱编程

[链表]–从尾到头打印链表 题目链接 剑指Offer 06.从尾到头打印链表 题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 输入:head = [1,3,2] 输出:[2,3,1] 解析 又是反向输出? 用栈! 1压栈;2出栈;3.来一个装一个 嘶…这时间39%玄乎了!再想想! 代码实现

[链表]leetcode1290-二进制链表转整数-爱代码爱编程

[链表]–二进制链表转整数 题目链接 leetcode 1290.二进制链表转整数 题目 给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。 请你返回该链表所表示数字的 十进制值 。 示例 输入:head = [1,0,1] 输出:5 解释:二进制数 (101) 转化为十进制数

[链表]leetcode430-扁平化多级双向链表-递归和迭代-爱代码爱编程

[链表]–扁平化多级双向链表 题目链接 leetcode 430.扁平化多级双向链表 题目 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双

[链表]leetcode328-奇偶链表-爱代码爱编程

[链表]–奇偶链表 题目链接 leecode 328.奇偶链表 题目 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 输入: 1-

[链表]leetcode138-复制带随机指针的链表-爱代码爱编程

[链表]–复制带随机指针的链表 题目链接 leetcode 138.复制带随机指针的链表 相同题目 Offer 35.复杂链表的复制 题目 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的 深拷贝。 我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val

[链表]leetcode61-旋转链表-爱代码爱编程

[链表]–旋转链表 题目链接 leetcode 61.旋转链表 题目 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转

[链表]leetcode24-两两交换链表中的节点-爱代码爱编程

[链表]–两两交换链表中的节点 题目链接 leetcode 24.两两交换链表中的节点 题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 输入:head = [1,2,3,4] 输出:[2,1,4,3] 输入:head = [] 输出:[] 输入:head

[链表]面试题 0201-移除重复节点-爱代码爱编程

[链表]–移除重复节点 题目链接 面试题 0201.移除重复节点 题目 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 链表长度在[0, 20000]范围内。 链表元素在[0, 20000]范围内。 示例 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 输入:[1, 1, 1, 1, 2] 输出:[

[链表]leetcode147-对链表进行插入排序和leetcode148-链表排序-爱代码爱编程

[链表]–对链表进行插入排序和链表排序 题目链接 leetcode 147.对链表进行插入排序 题目 对链表进行插入排序。 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例

[链表]leetcode203-移除链表元素-爱代码爱编程

[链表]–移除链表元素 题目链接 leetcode 203.移除链表元素 相似题型 剑指Offer 18.删除链表中的节点 题目 删除链表中等于给定值 val 的所有节点。 示例 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5

[链表]leetcode2-两数相加和leetcode-445两数相加Ⅱ-爱代码爱编程

[链表]–两数相加和两数相加Ⅱ 题目链接 leetcode 2.两数相加 相似题型 相同题型 面试题 02.05.链表求和 题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除