LeetCode-19 删除链表倒数第N个结点
2024-09-08 19:28:38
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list
题目描述
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
示例 1:
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
示例 2:
输入:head = [1], n = 1
输出:[]
示例 3:
输入:head = [1,2], n = 1
输出:[1]
解题思路
题目关键是找到倒数第n个结点,这里可以用双指针法,让指针p线走n-1步,然后指针q再行动,这样,指针p走到结尾的时候,指针q总会走到倒数第n个结点,同时用指针l来记录倒数第n-1个结点方便删除后重新连接链表。
代码展示
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode *p = head, *q = head, *l = head;
while(p->next != NULL)
{
p = p->next;
n--;
if(n <= 0)
{
l = q;
q = q->next;
}
}
if(q == head)
{
head = q->next;
}
else
{
l->next = q->next;
} delete q;
return head;
}
};
运行结果
最新文章
- .Net开源Excel、Word操作组件-NPOI、EPPlus、DocX
- [Project Name] was compiled with optimization - stepping may behave oddly; variables may not be available.
- python黑客编程之端口爆破
- sqoop的export的说明
- JAVA jdbc(数据库连接池)学习笔记(二) SQL注入
- js、expression表达式解析
- Android 生成含签名文件的apk安装包
- C#实现数据结构——线性表(上)
- 从一个非开发人员转行silverlight满一年的工作总结(第一次发帖)
- 发布时去掉 debug 和 提醒日志,简单无侵入
- linux系统基础优化16条知识汇总
- Vue(day3)
- selenium切换窗口后定位元素出现问题的解决方案
- Python爬虫的步骤和工具
- cdnbest常见问题
- 【转载】使用Jquery操作Cookie对象
- B. School Marks(典型贪心)
- js算法初窥07(算法复杂度)
- windows下安装apache zookeeper
- 用SLF4j/Logback打印日志-3
热门文章
- React报错之Function components cannot have string refs
- 一文速览 Dubbo 3.0
- SpringCloud微服务框架复习笔记
- Vue 响应式原理模拟以及最小版本的 Vue的模拟
- 几种数据库jar包获取方式
- uniapp中请求接口问题
- JavaScript:箭头函数:作为参数进行传参
- [R语言] 基于R语言实现环状条形图的绘制
- JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来 —— 感受来自Ehcache的强大实力
- try catch finally,try里有return,finally还执行么?