当前位置:网站首页>Leetcode19. Delete the penultimate node of the linked list [double pointer]
Leetcode19. Delete the penultimate node of the linked list [double pointer]
2022-07-07 22:49:00 【Qingshan's green shirt】
LeetCode19. Delete the last of the linked list N Nodes
List of articles
1. subject

2. Ideas
1. My own thinking is very simple and rough , Namely :
(1) Find the length of the linked list (2) Change the reciprocal into a positive number by calculation (3) Delete node
Pay attention to the special judgment header !! It is convenient to use sentinel nodes to handle header nodes !!
2. Simplified edition —— With two pointers , Just one scan
The following are implemented respectively .
3. Code implementation
(1) Reverse sequence to positive sequence
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
int size = 0;// Chain length
ListNode* dummyHead = new ListNode(-1,head);// Sentinel node
ListNode* p = dummyHead;
while(p->next!= NULL)// First traversal : Statistical list length
{
p = p->next;
size++; // Chain length
}
int a = size-n+1;// The location of the positive order of the node to be deleted from 1 Start !!
if(a == 1)// Special judgment head node
{
ListNode*q = head;
dummyHead->next = head->next;
head = head->next;// Connecting nodes
delete q;
delete dummyHead;
return head;
}
else// Other situations
{
ListNode *q = dummyHead;
// Start from the sentinel node Just go The positive order of the node to be deleted -1 Step by step
int cnt = size-n;
while(cnt--)// Second traversal
q = q->next;
ListNode *m = q->next;
q->next = m->next;// Connecting nodes
delete m;
delete dummyHead;
return head;
}
}
};
matters needing attention
1. Pay attention to the topic condition :n It must be size Within the scope of
2. A little summary , I feel like I think about it every time I'm here , It's a bit of a waste of time :
Statistical list length , If you start from the sentinel node, usewhile(p->next!= NULL)
Starting from the beginning iswhile(p != NULL)
(2) Double pointer
The most important thing is to omit the steps of calculating the length of the linked list !! There is no need to judge the head node !!
Implementation point :1. Sentinel node 2. Double pointer
See notes for ideas :
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* dummyHead = new ListNode(-1,head) ;
ListNode* fast = dummyHead;// Quick pointer
ListNode* slow = dummyHead;// Slow pointer
int a = n+1;
//1. Let's go first n+1 Step —— In order to synchronize the time in the later stage slow Point to the previous node to be deleted , Convenient operation
while(a--)
fast = fast->next;// Back ward n+1 Step
//2. The speed pointer moves synchronously ,
while(fast!=NULL)
{
slow = slow->next;
fast = fast->next;
} // here slow Point to the previous node of the node to be deleted
//3. Delete operation
ListNode*p = slow->next;
slow->next = p->next;
delete p;
return dummyHead->next; // Note that there !
}
};
1. Special attention should be paid to the last sentence
return dummyHead->next;
Because the original head node head May have been deleted , The new head node is dummyHead->next.
2.n The value of must be reasonable , So don't think too much ! There will be no empty fingers !
边栏推荐
- Revit secondary development - Hide occlusion elements
- Firefox browser installation impression notes clipping
- Aspose. Word operation word document (II)
- Common verification rules of form components -2 (continuously updating ~)
- Failed to initialize rosdep after installing ROS
- XMIND mind mapping software sharing
- 【Azure微服务 Service Fabric 】因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)
- CTF练习
- Form组件常用校验规则-2(持续更新中~)
- Remember aximp once Use of exe tool
猜你喜欢
![VTOL in Px4_ att_ Control source code analysis [supplement]](/img/7a/4ce0c939b9259faf59c52da2587693.jpg)
VTOL in Px4_ att_ Control source code analysis [supplement]

Yarn开启ACL用户认证之后无法查看Yarn历史任务日志解决办法

Pdf document signature Guide

How to choose the appropriate automated testing tools?

Amesim2016 and matlab2017b joint simulation environment construction

Remember aximp once Use of exe tool

. Net automapper use

Common verification rules of form components -2 (continuously updating ~)

How to quickly check whether the opening area ratio of steel mesh conforms to ipc7525

Select sort (illustration +c code)
随机推荐
How to judge whether the input content is "number"
XMIND mind mapping software sharing
How to realize the movement control of characters in horizontal game
行测-图形推理-8-图群类
C development - interprocess communication - named pipeline
Record problems fgui tween animation will be inexplicably killed
Debezium series: set role statement supporting mysql8
How to choose the appropriate automated testing tools?
Welcome to CSDN markdown editor
Get the exact offset of the element
De la famille debezium: SET ROLE statements supportant mysql8
Debezium系列之:引入对 LATERAL 运算符的支持
Loki, the "open source star picking program", realizes the efficient management of harbor logs
Revit secondary development - shielding warning prompt window
. Net automapper use
Remember an experience of using selectmany
Two methods of calling WCF service by C #
UWA问答精选
PHP method of obtaining image information
C # Development -- pit encountered in JS intermodulation