当前位置:网站首页>[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;
}
};
边栏推荐
- Mysqldump error1066 error solution
- Kaggle competition two Sigma connect: rental listing inquiries
- JS正则表达式基础知识学习
- [esp32 learning-1] construction of Arduino esp32 development environment
- Pytoch implements simple linear regression demo
- 单片机蓝牙无线烧录
- Esp8266 connects to bafayun (TCP maker cloud) through Arduino IED
- [Leetcode15]三数之和
- (3) Introduction to bioinformatics of R language - function, data Frame, simple DNA reading and analysis
- [esp32 learning-2] esp32 address mapping
猜你喜欢
随机推荐
Arduino gets the length of the array
Postman 中级使用教程【环境变量、测试脚本、断言、接口文档等】
Bubble sort [C language]
JUC forkjoin and completable future
(四)R语言的数据可视化——矩阵图、柱状图、饼图、散点图与线性回归、带状图
Stm32f1+bc20+mqtt+freertos system is connected to Alibaba cloud to transmit temperature and humidity and control LED lights
Single chip Bluetooth wireless burning
C language callback function [C language]
Use of lists
JS variable types and common type conversions
Remember an experience of ECS being blown up by passwords - closing a small black house, changing passwords, and changing ports
Fashion-Gen: The Generative Fashion Dataset and Challenge 论文解读&数据集介绍
PT OSC deadlock analysis
Keyword inline (inline function) usage analysis [C language]
The first simple case of GNN: Cora classification
Talking about the startup of Oracle Database
Amba, ahb, APB, Axi Understanding
imgcat使用心得
JS function promotion and declaration promotion of VaR variable
Rough analysis of map file