Remove Nth Node From End of List
来源:互联网 发布:matlab 输出数组 编辑:程序博客网 时间:2024/06/05 16:20
删除链表的倒数第n个元素
算法:
用三个指针p,q,r,p指针作为前移指针,q指针指向倒数第n个元素的指针,r为q指针的前面一个元素的指针。起始时刻p指向head,让p和q之间的距离为n,这样当p指向链表末尾的时候,q自然指向的是倒数第n个元素。
代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { int len = 0; ListNode* p = head; ListNode* q = p; ListNode* r = q; while(p!=nullptr) { if(n>0) { p = p->next; --n; } else { r = q; q=q->next; p=p->next; } } //此时删除的元素为第一个元素 if(r==q) { r = head->next; delete head; head =nullptr; return r; } r->next = q->next; delete q; q=nullptr; return head; }};
0 0
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node from End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- Remove Nth Node From End of List
- 英文歌曲:Just One Last Dance(最后一支舞)
- hdoj4500小Q系列故事——屌丝的逆袭
- 关于tag值使用及注意事项
- PhantomJS快速入门教程
- 数据库基本操作
- Remove Nth Node From End of List
- C指针一个简单的小错误(1)-内存分配
- iOS开发中微信支付的集成流程与注意事项
- Lesson 9 View port
- Linux Socket过程详细解释(包括三次握手建立连接,四次握手断开连接)
- Zend Studio教程之设置字体大小和颜色
- DOM事件流、事件处理程序以及事件对象
- 自定义简单的ViewPagerIndicator控件
- JAVA中类的加载过程