当前位置:网站首页>[leetcode19]删除链表中倒数第n个结点
[leetcode19]删除链表中倒数第n个结点
2022-07-06 09:17:00 【劲腰傩舞】
个人向
前后双指针
题目
给你一个链表,删除链表的倒数第 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]
提示:
链表中结点的数目为 sz
1 <= sz <= 30
0 <= Node.val <= 100
1 <= n <= sz
进阶:你能尝试使用一趟扫描实现吗?
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/remove-nth-node-from-end-of-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
/*方法就是定义两个指针。相差间隔恒定为n。并且在一次遍历中同时前进。简称前后双指针*/
ListNode* removeNthFromEnd(ListNode* head, int n) {
/*先定义一个头结点。统一操作。官方的称呼是哑结点,即dummy*/
ListNode* dummy = new ListNode(0, head);
/*定义一前一后两个指针。需要后面的指针比前面的指针多走n+1次 * 因为遍历一遍之后。后指针最终指向null。还需要保证前指针正好指向被删除结点的前驱。*/
/*注意*的优先级高于int,会先结合变量,listnode (*a) */
ListNode* front = dummy, * back = dummy;
for (int i = 1; i <= n + 1; i++)
back = back->next;
while (back) {
front = front->next;
back = back->next;
}
/*删除*/
front->next = front->next->next;
/*别返回head,该指针指向的结点可能已经被删除了*/
/*定义头结点的好处。统一操作。同时可以准确返回第一个结点对应的指针。 *即不用自己单独维护头指针了。两种操作二选一*/
return dummy->next;
}
};
边栏推荐
- PT OSC deadlock analysis
- RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
- Programmers can make mistakes. Basic pointers and arrays of C language
- Basic operations of databases and tables ----- classification of data
- Common properties of location
- ORA-02030: can only select from fixed tables/views
- [esp32 learning-1] construction of Arduino esp32 development environment
- ES6 grammar summary -- Part I (basic)
- Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]
- Redis based distributed ID generator
猜你喜欢
荣耀Magic 3Pro 充电架构分析
基於Redis的分布式ID生成器
Redis based distributed ID generator
Mysql database interview questions
JS Title: input array, exchange the largest with the first element, exchange the smallest with the last element, and output array.
Types de variables JS et transformations de type communes
ES6 grammar summary -- Part I (basic)
Kconfig Kbuild
[esp32 learning-2] esp32 address mapping
【ESP32学习-2】esp32地址映射
随机推荐
高通&MTK&麒麟 手機平臺USB3.0方案對比
Amba, ahb, APB, Axi Understanding
Arm pc=pc+8 is the most understandable explanation
JS数组常用方法的分类、理解和运用
荣耀Magic 3Pro 充电架构分析
Pytorch: tensor operation (I) contiguous
Several declarations about pointers [C language]
E-commerce data analysis -- salary prediction (linear regression)
Mysql database interview questions
ESP learning problem record
The dolphin scheduler remotely executes shell scripts through the expect command
Unit test - unittest framework
Analysis of charging architecture of glory magic 3pro
ES6 grammar summary -- Part I (basic)
Priority inversion and deadlock
ESP8266通过arduino IED连接巴法云(TCP创客云)
数据库课程设计:高校教务管理系统(含代码)
JS 函数提升和var变量的声明提升
基於Redis的分布式ID生成器
Minio文件下载问题——inputstream:closed