网站seo注意事项,南通外贸网站制作,北京欢迎您,黑帽seo365t技术给你一个链表#xff0c;删除链表的倒数第 n 个结点#xff0c;并且返回链表的头结点。 示例 1#xff1a; 输入#xff1a;head [1,2,3,4,5], n 2
输出#xff1a;[1,2,3,5]示例 2#xff1a;
输入#xff1a;head [1], n 1
输出#xff1a;[]示例 3#xff1a;…给你一个链表删除链表的倒数第 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]提示
链表中结点的数目为 sz1 sz 300 Node.val 1001 n sz 代码实现
/*** Definition for singly-linked list.* function ListNode(val, next) {* this.val (valundefined ? 0 : val)* this.next (nextundefined ? null : next)* }*/
/*** param {ListNode} head* param {number} n* return {ListNode}*/
var removeNthFromEnd function (head, n) {// 创建虚拟头结点alet a new ListNode(0);a.next head;// 初始化快慢指针都指向alet fast a;let slow a;// 快指针先移动n步for (let i 0; i n; i) {fast fast.next;}// 快指针的下一个节点不为空时快慢指针一起移动// 快指针到末尾时慢指针指向要删除结点的前一结点while (fast.next ! null) {fast fast.next;slow slow.next;}// 删除目标结点,慢指针的next指向下下个结点slow.next slow.next.next;// 跳过a结点,返回链表头结点return a.next;
};