leetcode 之Remove Nth Node From End of List(19)

Posted 牧马人夏峥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 之Remove Nth Node From End of List(19)相关的知识,希望对你有一定的参考价值。

这题比较简单,方法有很多。其中一种比较有意思的做法是设置两个指针,一个先走n步,然后再一起走。一个到了末尾,另一个也就确定了要删除元素的位置。

ListNode *removeNthFromEnd(ListNode *head, int n) {
ListNode dummy{-1, head};
ListNode *p = &dummy, *q = &dummy;
for (int i = 0; i < n; i++) // q 先走 n 步
q = q->next;
while(q->next) { // 一起走
p = p->next;
q = q->next;
}
ListNode *tmp = p->next;
p->next = p->next->next;
delete tmp;
return dummy.next;
}
View Code

 

以上是关于leetcode 之Remove Nth Node From End of List(19)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode:Remove Nth Node From End of List

[LeetCode19]Remove Nth Node From End of List

LeetCode(19) - Remove Nth Node From End of List

LeetCode19. Remove Nth Node From End of List

leetcode 19. Remove Nth Node From End of List

LeetCode 19. Remove Nth Node From End of List