码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-05-19 14:58:32      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

这题比较简单,方法有很多。其中一种比较有意思的做法是设置两个指针,一个先走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)

标签:

原文地址:http://www.cnblogs.com/573177885qq/p/5508566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!