本文主要是介绍每日一题《leetcode--LCR 021.删除链表的倒数第N个结点》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://leetcode.cn/problems/SLwz0R/
这道题我们可以设一个哨兵位,然后把要遍历链表的结点指向该哨兵位。最后用for循环将指针指向要删除结点的前一个。
struct ListNode* removeNthFromEnd(struct ListNode* head, int n){struct ListNode* dummy = malloc(sizeof(struct ListNode));dummy->val = 0, dummy->next = head;struct ListNode* cur = head;int count = 0;while(cur){++count;cur = cur->next;}cur = dummy;for(int i =1 ; i< count - n +1 ; ++i){cur = cur->next;}cur->next = cur->next->next;cur = dummy->next;free(dummy);return cur;
}
这篇关于每日一题《leetcode--LCR 021.删除链表的倒数第N个结点》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!