当前位置:网站首页>[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;
}
};
边栏推荐
- Esp8266 connects to bafayun (TCP maker cloud) through Arduino IED
- ES6语法总结--下篇(进阶篇 ES6~ES11)
- Minio file download problem - inputstream:closed
- 列表的使用
- JS 函数提升和var变量的声明提升
- Working principle of genius telephone watch Z3
- Gateway 根据服务名路由失败,报错 Service Unavailable, status=503
- Kconfig Kbuild
- (5) Introduction to R language bioinformatics -- ORF and sequence analysis
- (五)R语言入门生物信息学——ORF和序列分析
猜你喜欢

open-mmlab labelImg mmdetection

Pat 1097 duplication on a linked list (25 points)

js题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

MySQL takes up too much memory solution

dosbox第一次使用

Arm pc=pc+8 is the most understandable explanation

Kaggle competition two Sigma connect: rental listing inquiries (xgboost)

编译原理:源程序的预处理及词法分析程序的设计与实现(含代码)

Esp8266 uses Arduino to connect Alibaba cloud Internet of things

Time slice polling scheduling of RT thread threads
随机推荐
Who says that PT online schema change does not lock the table, or deadlock
Kconfig Kbuild
(5) Introduction to R language bioinformatics -- ORF and sequence analysis
A possible cause and solution of "stuck" main thread of RT thread
ESP learning problem record
关于Gateway中使用@Controller的问题
Pat 1097 duplication on a linked list (25 points)
Imgcat usage experience
ES6语法总结--上篇(基础篇)
Priority inversion and deadlock
编译原理:源程序的预处理及词法分析程序的设计与实现(含代码)
[Leetcode15]三数之和
Classification, understanding and application of common methods of JS array
Expected value (EV)
Bubble sort [C language]
Mysqldump error1066 error solution
dosbox第一次使用
Kaggle competition two Sigma connect: rental listing inquiries (xgboost)
Conditional probability
JS正则表达式基础知识学习