📜  Javascript程序删除链表的M个节点后的N个节点

📅  最后修改于: 2022-05-13 01:57:44.840000             🧑  作者: Mango

Javascript程序删除链表的M个节点后的N个节点

给定一个链表和两个整数 M 和 N。遍历链表,保留 M 个节点,然后删除下一个 N 个节点,继续相同直到链表结束。
难度级别:新手
例子:

Input:
M = 2, N = 2
Linked List: 1->2->3->4->5->6->7->8
Output:
Linked List: 1->2->5->6

Input:
M = 3, N = 2
Linked List: 1->2->3->4->5->6->7->8->9->10
Output:
Linked List: 1->2->3->6->7->8

Input:
M = 1, N = 1
Linked List: 1->2->3->4->5->6->7->8->9->10
Output:
Linked List: 1->3->5->7->9

问题的主要部分是保持节点之间的正确链接,确保处理所有极端情况。以下是函数skipMdeleteN() 的 C 实现,它跳过 M 个节点并删除 N 个节点直到列表末尾。假设 M 不能为 0。

Javascript


输出:

M = 2, N = 3
Given Linked list is :
1 2 3 4 5 6 7 8 9 10
Linked list after deletion is :
1 2 6 7

时间复杂度:
O(n) 其中 n 是链表中的节点数。

辅助空间:O(1)

详情请参考完整文章删除链表的M个节点后的N个节点!