0
点赞
收藏
分享

微信扫一扫

leetcode----19. 删除链表的倒数第 N 个结点



文章目录

  • ​​前言​​
  • ​​一、链接点这里​​
  • ​​二、使用步骤​​
  • ​​1.引入库​​
  • ​​2.读入数据​​
  • ​​总结​​

前言

方法和思路如下

leetcode----19. 删除链表的倒数第 N 个结点_链表

一、链接点这里

​​链接在这里哦!​​

二、使用步骤

1.引入库

代码如下(示例):

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/


struct ListNode* removeNthFromEnd(struct ListNode* head, int n){
struct ListNode* newhead=(struct ListNode*)malloc(sizeof(struct ListNode));
newhead->next=head;
struct ListNode* slow=newhead;
struct ListNode* fast=newhead;
while(n--)//让fast走动n次
{
fast=fast->next;
}
struct ListNode* cur=newhead;//保存slow上一个节点
while(fast)
{
cur=slow;
fast=fast->next;
slow=slow->next;
}
cur->next=slow->next;
struct ListNode* ret=newhead->next;
free(slow);
free(newhead);
return ret;
}

2.读入数据

leetcode----19. 删除链表的倒数第 N 个结点_头结点_02

总结

这里用到了带哨兵位的头结点,方法很巧妙,可以解决很多的临界问题,链表的题大多数都要用到此类方法.



举报

相关推荐

0 条评论