package
0.0.0-20240920062246-d0657495930a
Repository: https://github.com/yigmmk/leetcode.git
Documentation: pkg.go.dev
# Packages
* @lc app=leetcode.cn id=1669 lang=golang
*
* [1669] 合并两个链表
*
* https://leetcode.cn/problems/merge-in-between-linked-lists/description/
*
* algorithms
* Medium (74.95%)
* Likes: 84
* Dislikes: 0
* Total Accepted: 35.9K
* Total Submissions: 46.8K
* Testcase Example: '[0,1,2,3,4,5]\n3\n4\n[1000000,1000001,1000002]'
*
* 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。
*
* 请你将 list1 中下标从 a 到 b 的全部节点都删除,并将list2 接在被删除节点的位置。
*
* 下图中蓝色边和节点展示了操作后的结果:
*
* 请你返回结果链表的头指针。
*
*
*
* 示例 1:
*
*
*
*
* 输入:list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002]
* 输出:[0,1,2,1000000,1000001,1000002,5]
* 解释:我们删除 list1 中下标为 3 和 4 的两个节点,并将 list2 接在该位置。上图中蓝色的边和节点为答案链表。
*
*
* 示例 2:
*
*
* 输入:list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 =
* [1000000,1000001,1000002,1000003,1000004]
* 输出:[0,1,1000000,1000001,1000002,1000003,1000004,6]
* 解释:上图中蓝色的边和节点为答案链表。
*
*
*
*
* 提示:
*
*
* 3 <= list1.length <= 10^4
* 1 <= a <= b < list1.length - 1
* 1 <= list2.length <= 10^4
*
*
*/.
* @lc app=leetcode.cn id=1721 lang=golang
* @lcpr version=30204
*
* [1721] 交换链表中的节点
*/.
* @lc app=leetcode.cn id=19 lang=golang
*
* [19] 删除链表的倒数第 N 个结点
*
* https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/
*
* algorithms
* Medium (44.42%)
* Likes: 2183
* Dislikes: 0
* Total Accepted: 899.6K
* Total Submissions: 2M
* Testcase Example: '[1,2,3,4,5]\n2'
*
* 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
*
*
*
* 示例 1:
*
*
* 输入:head = [1,2,3,4,5], n = 2
* 输出:[1,2,3,5]
*
*
* 示例 2:
*
*
* 输入:head = [1], n = 1
* 输出:[]
*
*
* 示例 3:
*
*
* 输入:head = [1,2], n = 1
* 输出:[1]
*
*
*
*
* 提示:
*
*
* 链表中结点的数目为 sz
* 1 <= sz <= 30
* 0 <= Node.val <= 100
* 1 <= n <= sz
*
*
*
*
* 进阶:你能尝试使用一趟扫描实现吗?
*
*/.
* @lc app=leetcode.cn id=2095 lang=golang
*
* [2095] 删除链表的中间节点
*
* https://leetcode.cn/problems/delete-the-middle-node-of-a-linked-list/description/
*
* algorithms
* Medium (57.63%)
* Likes: 62
* Dislikes: 0
* Total Accepted: 27.3K
* Total Submissions: 47.3K
* Testcase Example: '[1,3,4,7,1,2,6]'
*
* 给你一个链表的头节点 head 。删除 链表的 中间节点 ,并返回修改后的链表的头节点 head 。
*
* 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。
*
*
* 对于 n = 1、2、3、4 和 5 的情况,中间节点的下标分别是 0、1、1、2 和 2 。
*
*
*
*
* 示例 1:
*
*
*
*
* 输入:head = [1,3,4,7,1,2,6]
* 输出:[1,3,4,1,2,6]
* 解释:
* 上图表示给出的链表。节点的下标分别标注在每个节点的下方。
* 由于 n = 7 ,值为 7 的节点 3 是中间节点,用红色标注。
* 返回结果为移除节点后的新链表。
*
*
* 示例 2:
*
*
*
*
* 输入:head = [1,2,3,4]
* 输出:[1,2,4]
* 解释:
* 上图表示给出的链表。
* 对于 n = 4 ,值为 3 的节点 2 是中间节点,用红色标注。
*
*
* 示例 3:
*
*
*
*
* 输入:head = [2,1]
* 输出:[2]
* 解释:
* 上图表示给出的链表。
* 对于 n = 2 ,值为 1 的节点 1 是中间节点,用红色标注。
* 值为 2 的节点 0 是移除节点 1 后剩下的唯一一个节点。
*
*
*
* 提示:
*
*
* 链表中节点的数目在范围 [1, 10^5] 内
* 1 <= Node.val <= 10^5
*
*
*/.
* @lc app=leetcode.cn id=2130 lang=golang
*
* [2130] 链表最大孪生和
*
* https://leetcode.cn/problems/maximum-twin-sum-of-a-linked-list/description/
*
* algorithms
* Medium (78.86%)
* Likes: 48
* Dislikes: 0
* Total Accepted: 18.2K
* Total Submissions: 23.2K
* Testcase Example: '[5,4,2,1]'
*
* 在一个大小为 n 且 n 为 偶数 的链表中,对于 0 <= i <= (n / 2) - 1 的 i ,第 i 个节点(下标从 0
* 开始)的孪生节点为第 (n-1-i) 个节点 。
*
*
* 比方说,n = 4 那么节点 0 是节点 3 的孪生节点,节点 1 是节点 2 的孪生节点。这是长度为 n = 4 的链表中所有的孪生节点。
*
*
* 孪生和 定义为一个节点和它孪生节点两者值之和。
*
* 给你一个长度为偶数的链表的头节点 head ,请你返回链表的 最大孪生和 。
*
*
*
* 示例 1:
*
*
*
* 输入:head = [5,4,2,1]
* 输出:6
* 解释:
* 节点 0 和节点 1 分别是节点 3 和 2 的孪生节点。孪生和都为 6 。
* 链表中没有其他孪生节点。
* 所以,链表的最大孪生和是 6 。
*
*
* 示例 2:
*
*
*
* 输入:head = [4,2,2,3]
* 输出:7
* 解释:
* 链表中的孪生节点为:
* - 节点 0 是节点 3 的孪生节点,孪生和为 4 + 3 = 7 。
* - 节点 1 是节点 2 的孪生节点,孪生和为 2 + 2 = 4 。
* 所以,最大孪生和为 max(7, 4) = 7 。
*
*
* 示例 3:
*
*
*
* 输入:head = [1,100000]
* 输出:100001
* 解释:
* 链表中只有一对孪生节点,孪生和为 1 + 100000 = 100001 。
*
*
*
*
* 提示:
*
*
* 链表的节点数目是 [2, 10^5] 中的 偶数 。
* 1 <= Node.val <= 10^5
*
*
*/.
* @lc app=leetcode.cn id=328 lang=golang
*
* [328] 奇偶链表
*
* https://leetcode.cn/problems/odd-even-linked-list/description/
*
* algorithms
* Medium (64.70%)
* Likes: 753
* Dislikes: 0
* Total Accepted: 223.5K
* Total Submissions: 345.7K
* Testcase Example: '[1,2,3,4,5]'
*
* 给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。
*
* 第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。
*
* 请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。
*
* 你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。
*
*
*
* 示例 1:
*
*
*
*
* 输入: head = [1,2,3,4,5]
* 输出: [1,3,5,2,4]
*
* 示例 2:
*
*
*
*
* 输入: head = [2,1,3,5,6,4,7]
* 输出: [2,3,6,7,1,5,4]
*
*
*
* 提示:
*
*
* n == 链表中的节点数
* 0 <= n <= 10^4
* -10^6 <= Node.val <= 10^6
*
*
*/.
* @lc app=leetcode.cn id=61 lang=golang
* @lcpr version=30204
*
* [61] 旋转链表
*/.