当前位置:网站首页>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 !
边栏推荐
- 变量与常量
- The whole network "chases" Zhong Xuegao
- PHP records the pitfalls encountered in the complete docking of Tencent cloud live broadcast and im live group chat
- Gazebo import the mapping model created by blender
- [azure microservice service fabric] how to transfer seed nodes in the service fabric cluster
- OpenGL job - texture
- Quick sort (diagram +c code)
- Unity technical notes (I) inspector extension
- 戴森官方直营店免费造型服务现已开放预约 先锋科技诠释护发造型理念,助力消费者解锁多元闪耀造型
- [environment] pycharm sets the tool to convert QRC into py file
猜你喜欢

What does it mean to prefix a string with F?

【Azure微服务 Service Fabric 】如何转移Service Fabric集群中的种子节点(Seed Node)

vite Unrestricted file system access to

行测-图形推理-8-图群类

行测-图形推理-3-对称图形类

Antd date component appears in English

Px4 autonomous flight

. Net automapper use

Select sort (illustration +c code)

Unity FAQ (I) lack of references
随机推荐
UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xf9 in position 56: illegal multibyte sequence
How to choose the appropriate automated testing tools?
OpenGL configuration vs2019
Visual design form QT designer design gui single form program
Gazebo import the mapping model created by blender
Typeorm automatically generates entity classes
Remember an experience of using selectmany
微服务架构开源框架详情介绍
VTOL in Px4_ att_ Control source code analysis [supplement]
ASP.NET Core入门五
Failed to initialize rosdep after installing ROS
行测-图形推理-3-对称图形类
Aspose. Words merge cells
Ren Qian code compilation error modification
Debezium series: set role statement supporting mysql8
How to quickly check whether the opening area ratio of steel mesh conforms to ipc7525
Amesim2016 and matlab2017b joint simulation environment construction
Visual studio 2019 installation
ASP. Net core introduction V
Revit secondary development - modify wall thickness