给定一个单链表和一个整数 n。从链表末尾开始向前计数,第 n 个节点就是需要删除的节点。请你删除该节点,并返回删除操作后的链表头节点。
链表节点的结构包含两个属性:一个整数值 val,以及一个指向下一个节点的指针 next。
约束条件:链表的节点数量在 1 到 30 之间;每个节点的值 val 在 0 到 100 之间;n 满足 1 ≤ n ≤ 链表长度。
输入包含两个参数:一个单链表的头节点 head,类型为 Optional[ListNode],表示原始链表;一个整数 n,表示需要删除的节点是从链表末尾开始计数的第 n 个节点。
返回一个链表头节点,类型为 Optional[ListNode],表示删除指定节点后的链表。如果删除后链表为空,则返回 None。
输入
6
9 8 7 6 5 4
6
输出
8 7 6 5 4
说明
链表长度为 6,元素依次为 9、8、7、6、5、4,需要删除倒数第 6 个节点。
要删除的节点正好是头节点 9。删除该节点后,链表剩余节点值依次为 8、7、6、5、4。
输入
5
100 20 30 40 50
1
输出
100 20 30 40
说明
链表长度为 5,元素依次为 100、20、30、40、50,需要删除倒数第 1 个节点。
倒数第 1 个节点就是末尾节点 50。删除后链表剩余节点值为 100、20、30、40。
输入
2
7 8
2
输出
8
说明
链表长度为 2,元素依次为 7、8,需要删除倒数第 2 个节点。
倒数第 2 个节点是头节点 7。删除后链表只剩节点 8。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册