删除链表中倒数第n个节点

给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。

注意事项

链表中的节点个数大于等于n

样例

给出链表 1->2->3->4->5->null 和 n = 2.

删除倒数第二个节点之后,这个链表将变成 1->2->3->5->null .

挑战

O(n)时间复杂度

标签

链表 两根指针

code

/**
* Definition of ListNode
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param head: The first node of linked list.
* @param n: An integer.
* @return: The head of linked list.
*/
ListNode *removeNthFromEnd(ListNode *head, int n) {
// write your code here
if(n > 0) {
ListNode *pBegin=head, *pEnd=head;
while(n-- && pEnd!=NULL) {
pEnd = pEnd->next;
}
// n<链表长度
if(n == -1 && pEnd!=NULL) {
while(pEnd->next != NULL) {
pBegin = pBegin->next;
pEnd = pEnd->next;
}
pBegin->next = pBegin->next->next;
return head;
}
// n>链表长度
else if(n > -1 && pEnd!=NULL) {
return head;
}
// n=链表长度
else {
return head->next;
}
}
}
};

最新文章

  1. 【13_263】Ugly Number
  2. CentOS 下安装配置mongodb
  3. win10 phpStudy 80端口被占用
  4. oracle rac 日志体系结构!
  5. Java 获取本机IP
  6. 用于主题检测的临时日志(fe4edac1-b4f4-4673-ae87-110cbb7dbb5a - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
  7. NOI 2013 矩阵游戏
  8. 多线程中遇到ASSERT(pMap-&gt;LookupPermanent(hWndOrig) == NULL);怎么解决
  9. 13、Cocos2dx 3.0游戏开发找小三之3.0中的Director :郝萌主,一统江湖
  10. c++判断一个字符串是否是数字
  11. php部分--文件操作
  12. Spring中的接口BeanFactory和FactoryBean的学习
  13. CUDA 计算线程索引的一般公式
  14. 你不知道的腾讯社招面试经验(已offer)
  15. 三.NFS存储服务
  16. 迪杰斯特拉算法dijkstra(可打印最短路径)
  17. 开源 人脸识别 openface 实用介绍 实例演示 训练自己的模型
  18. 【openjudge】【搜索(bfs)】P4980拯救行动
  19. nginx反向代理设置自定义错误页面
  20. 【比赛游记】NOIP2017游记

热门文章

  1. angularjs中控制器之间的通信----$on、$emit和$broadcast解析
  2. es6 Reflect对象详解
  3. php 将富文本编辑后的内容取出
  4. PC环境搭建——虚拟机配置双网卡
  5. pygame---制作一只会转弯的小乌龟
  6. 构建工具——maven的补充
  7. Caliburn.Micro 杰的入门教程1(翻译)
  8. 全国Uber优步司机奖励政策 (1月25日-1月31日)
  9. 成都Uber优步司机奖励政策(3月9日)
  10. 重庆Uber优步司机奖励政策