哪个网站可以做卖房,网站菜单模板,网络服务合同需要缴纳印花税吗,电脑编程培训给定一个链表#xff0c;删除链表的倒数第 n 个节点#xff0c;并且返回链表的头结点。 示例#xff1a; 给定一个链表: 1-2-3-4-5, 和 n 2. 当删除了倒数第二个节点后#xff0c;链表变为 1-2-3-5. 说明#xff1a; 给定的 n 保证是有效的。… 给定一个链表删除链表的倒数第 n 个节点并且返回链表的头结点。 示例 给定一个链表: 1-2-3-4-5, 和 n 2. 当删除了倒数第二个节点后链表变为 1-2-3-5. 说明 给定的 n 保证是有效的。 进阶 你能尝试使用一趟扫描实现吗 来源力扣LeetCode 链接https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 解法
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {if(!head) return head;ListNode *slow head, *fast head;while(n--)fast fast-next;if(fast NULL) return head-next;while(fast-next){fast fast-next;slow slow-next;}slow-next slow-next-next;return head; }
};