题目链接

【题解】

经典的一道题。
让p1指向链表的第一个元素。
让p2指向链表的第二个元素。
然后让他们俩同时往后移动。
直到p2到达链表的尾巴。
这时p1和p2之间总是隔了n-1个元素。
所以p1一定是倒数第n个元素。
记得加个虚拟的头结点方便删除操作(删掉了第一个数字的话)
$O(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) {
ListNode * temp = new ListNode(0);temp->next = head;
ListNode * ans = temp;
ListNode *p1 = head;
ListNode *p2 = head;
for (int i = 1;i <= n-1;i++) p2 = p2->next;
while (p2->next){
temp = temp->next;
p1 = p1->next;
p2 = p2->next;
}
temp->next = p1->next;
delete(p1);
return ans->next;
}
};

最新文章

  1. PHP HTTP请求
  2. struts2+spring+hibernte整合示例
  3. oracle游标调试结果显示位置
  4. css中visiblity和display异同
  5. block做方法参数时--block的参数传值过程 例1
  6. Cursor的各种效果
  7. 昂贵的聘礼---poj1062(最短路)
  8. [转载]Spring Java Based Configuration
  9. 实用Yii扩展
  10. adb shell dumpsys package 查看versionCode
  11. Android中的webview的进度条
  12. Android零碎知识点总结
  13. Android之事件分发
  14. CSS公用
  15. UWP 手绘视频创作工具技术分享系列 - 有 AI 的手绘视频
  16. bootstrap 栅格系统 HTTP协议 软件架构 B/S C/S 常见的WEB服务器
  17. Go 语言循环语句
  18. 基于.Net进行前端开发的技术栈发展路线(三)
  19. C#中的session用法
  20. Ocelot简易教程(二)之快速开始1

热门文章

  1. docker 运行jenkins及vue项目与springboot项目(一.安装docker)
  2. 工程师技术(六):Linux工程师 综合测试
  3. 使用Canvas操作像素
  4. 【Java架构:基础技术】一篇文章搞掂:MyBatis
  5. legend2---17、legend2里面怎么面向对象
  6. ICO和区块链区别
  7. linux搭建集群
  8. border-color:transparent;
  9. 基于nodejs的一个实时markdown转html工具小程序
  10. upc组队赛4 Go Latin