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