LeetCode:19题
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* removeNthFromEnd(struct ListNode* head, int n){
if(head->next == NULL) return NULL;
struct ListNode* p = NULL;
struct ListNode* q= NULL;
p = head->next;
int count = 0;
while(p){
count++;
p = p->next;
}
p = head;
for(int j=0;j<(count-n);j++){
p = p->next;
}
q = p->next;
p->next = q->next;
free(q);
return head;
}
请问大佬们这个[1,3] 2为什么会返回1呢 删除的节点是最后一个 我用自己的VC都不会出现这个问题,不懂为什么还望有大佬可以解释一下 不胜感激
https://blog.csdn.net/qq_39241239/article/details/82319620
我只想知道自己哪里错了,很难受,为什么AC不了呢