删除链表的倒数第 个结点(C++)
删除链表的倒数第 个结点(C++)
删除链表的倒数第 个结点给你一个链表,删除链表的倒数第 n **个结点,并且返回链表的头结点。示例 1:代码语言:javascript代码运行次数:0运行复制输入: head = [1,2,,4,5], n = 2
输出: [1,2,,5]示例 2:代码语言:javascript代码运行次数:0运行复制输入: head = [1], n = 1
输出
删除链表的倒数第 个结点(C++)
删除链表的倒数第 个结点
给你一个链表,删除链表的倒数第 n
**个结点,并且返回链表的头结点。
示例 1:
输入: head = [1,2,,4,5], n = 2
输出: [1,2,,5]
示例 2:
代码语言:javascript代码运行次数:0运行复制输入: head = [1], n = 1
输出: []
示例 :
代码语言:javascript代码运行次数:0运行复制输入: head = [1,2], n = 1
输出: [1]
提示:
- 链表中结点的数目为
sz
1 <= sz <= 0
0 <= ode.val <= 100
1 <= n <= sz
我的代码:
代码语言:javascript代码运行次数:0运行复制/**clike
* Definition for singly-linked list.
* struct Listode {
* int val;
* Listode *next;
* Listode() : val(0), next(nullptr) {}
* Listode(int x) : val(x), next(nullptr) {}
* Listode(int x, Listode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
// 经典双指针算法 典型例题
// 可以通过 两个指针来在不知道链表长度的前提下
// 就可以确定需要删除的具体位置
Listode* removethFromEnd(Listode* head, int n) {
int i = 0;
struct Listode* p, *q;
p = q = (struct Listode*) malloc(sizeof (struct Listode));
p->next = head;
q->next = head;
// 先让前指针移动n个单位
while(i < n)
{
q = q->next;
i ++;
}
// 然后再让q,p一起移动, 当q移动到ULL的时候
// 就是p移动到倒数第n个位置的时候
while(q->next != ULL)
{
q = q->next;
p = p->next;
}
if (p->next == head) // 如果链表没有变过 就直接返回
{
return head->next;
}
else
{
// 这一步就是删掉倒数第n个点
p->next = p->next->next;
}
return head;
}
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022-10-19,如有侵权请联系 cloudcommunity@tencent 删除链表算法指针c++int #感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-20 14:07:43
上一篇:整数反转(C++)
下一篇:删除有序数组中的重复项(C++)
推荐阅读
留言与评论(共有 12 条评论) |
本站网友 嘉兴商铺 | 3分钟前 发表 |
5]示例 2:代码语言:javascript代码运行次数:0运行复制输入: head = [1] | |
本站网友 融资性担保公司管理暂行办法 | 15分钟前 发表 |
并且返回链表的头结点 | |
本站网友 动漫产业基地 | 21分钟前 发表 |
如有侵权请联系 cloudcommunity@tencent 删除前往查看链表算法指针c++int | |
本站网友 城乡居民基本养老保险制度 | 23分钟前 发表 |
本站网友 茯苓的功效与作用禁忌 | 20分钟前 发表 |
并且返回链表的头结点 | |
本站网友 天津大学仁爱学院邮编 | 9分钟前 发表 |
5]示例 2:代码语言:javascript代码运行次数:0运行复制输入: head = [1] | |
本站网友 wow隐藏的信息 | 1分钟前 发表 |
原始发表:2022-10-19 | |
本站网友 断指再植 | 16分钟前 发表 |
n = 1 输出: [1]提示:链表中结点的数目为 sz1 <= sz <= 00 <= ode.val <= 1001 <= n <= sz我的代码:代码语言:javascript代码运行次数:0运行复制/**clike * Definition for singly-linked list. * struct Listode { * int val; * Listode *next; * Listode() | |
本站网友 山东会计人员继续教育网 | 23分钟前 发表 |
val(x) | |
本站网友 腹壁整形 | 19分钟前 发表 |
n = 1 输出: []示例 :代码语言:javascript代码运行次数:0运行复制输入: head = [1 | |
本站网友 豌豆的营养价值 | 26分钟前 发表 |
// 经典双指针算法 典型例题 // 可以通过 两个指针来在不知道链表长度的前提下 // 就可以确定需要删除的具体位置 Listode* removethFromEnd(Listode* head |