网站优化排名推广,自助建站平台免费,wordpress 汉语字体,uc网站怎么做给你一个链表#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;[]
示例…给你一个链表删除链表的倒数第 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]
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {if(!head){return nullptr;}ListNode* HEADnew ListNode(0);//创建新节点HEAD-nexthead;//多创建一个节点这样删除节点不用考虑是否是头节点int cnt0;ListNode* preHEAD;ListNode* curhead;while(cur){cnt;curcur-next;}//删除第cnt-n1个节点,从第一个节点移动cnt-n次curhead;for(int i0;icnt-n;i){prepre-next;curcur-next;//printf(pre%d,cur%d\n,pre-val,cur-val);}pre-nextcur-next;return HEAD-next;}
};