/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* removeNthFromEnd(struct ListNode* head, int n){
struct ListNode* Head = malloc(sizeof(struct ListNode));
Head->next = head;
struct ListNode* p = Head;
struct ListNode* q = Head;
int count=0;
while(p->next!=NULL){
if(count<n) count++;
else q=q->next;
p=p->next;
}
if(count==n){
q->next=q->next->next;
}
return Head->next;
}
执行结果:
通过
显示详情
执行用时:
4 ms
, 在所有 C 提交中击败了
53.51%
的用户
内存消耗:
5.6 MB
, 在所有 C 提交中击败了
75.00%
的用户
通过测试用例:
208 / 208作者:油炸梅西
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn2925/?discussion=IsCa9i
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
//p,q都指向链表的第一个结点,让二者距离为n,当p指向最后一个结点,q就指向倒数第n-1个。
//最后返回头指针