当前位置:网站首页>[leetcode19] delete the penultimate node in the linked list
[leetcode19] delete the penultimate node in the linked list
2022-07-06 12:24:00 【Vigorous waist Nuo dance】
Personally to
Front and rear double pointers
subject
I'll give you a list , Delete the last of the linked list n Nodes , And return the head node of the list .
Example 1:
Input :head = [1,2,3,4,5], n = 2
Output :[1,2,3,5]
Example 2:
Input :head = [1], n = 1
Output :[]
Example 3:
Input :head = [1,2], n = 1
Output :[1]
Tips :
The number of nodes in the list is sz
1 <= sz <= 30
0 <= Node.val <= 100
1 <= n <= sz
Advanced : Can you try a scan implementation ?
source : Power button (LeetCode)
link :https://leetcode.cn/problems/remove-nth-node-from-end-of-list
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .
class Solution {
public:
/* The method is to define two pointers . The phase difference interval is constant n. And advance simultaneously in one traversal . Abbreviation: front and back double pointers */
ListNode* removeNthFromEnd(ListNode* head, int n) {
/* First define a header node . Unified operation . The official name is dumb node , namely dummy*/
ListNode* dummy = new ListNode(0, head);
/* Define two pointers before and after one . The following pointer needs to go more than the previous pointer n+1 Time * Because after traversal . The back pointer finally points to null. You also need to ensure that the front pointer just points to the precursor of the deleted node .*/
/* Be careful * Has a higher priority than int, Will first combine variables ,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;
}
/* Delete */
front->next = front->next->next;
/* Don't go back head, The node pointed to by this pointer may have been deleted */
/* Benefits of defining header nodes . Unified operation . At the same time, it can accurately return the pointer corresponding to the first node . * That is, you don't need to maintain the head pointer alone . Choose between two operations */
return dummy->next;
}
};
边栏推荐
- MySQL takes up too much memory solution
- ES6语法总结--上篇(基础篇)
- ESP learning problem record
- 编译原理:源程序的预处理及词法分析程序的设计与实现(含代码)
- A possible cause and solution of "stuck" main thread of RT thread
- Kaggle competition two Sigma connect: rental listing inquiries
- VIM command line notes
- Mysqldump error1066 error solution
- Expected value (EV)
- [Offer18]删除链表的节点
猜你喜欢

level16

(三)R语言的生物信息学入门——Function, data.frame, 简单DNA读取与分析

Arduino JSON data information parsing

Pytorch four commonly used optimizer tests

Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】

JS 函数提升和var变量的声明提升

MySQL占用内存过大解决方案

Working principle of genius telephone watch Z3

ES6 grammar summary -- Part I (basic)

数据库课程设计:高校教务管理系统(含代码)
随机推荐
Amba, ahb, APB, Axi Understanding
Gravure sans fil Bluetooth sur micro - ordinateur à puce unique
.elf .map .list .hex文件
(5) Introduction to R language bioinformatics -- ORF and sequence analysis
RT thread API reference manual
NRF24L01故障排查
JS 函数提升和var变量的声明提升
Fashion Gen: the general fashion dataset and challenge paper interpretation & dataset introduction
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
Cannot change version of project facet Dynamic Web Module to 2.3.
基于Redis的分布式ID生成器
JS regular expression basic knowledge learning
Arduino JSON data information parsing
Get the position of the nth occurrence of the string
Missing value filling in data analysis (focus on multiple interpolation method, miseforest)
[Nodejs] 20. Koa2 onion ring model ----- code demonstration
程序员老鸟都会搞错的问题 C语言基础 指针和数组
open-mmlab labelImg mmdetection
Cannot change version of project facet Dynamic Web Module to 2.3.
ESP学习问题记录