文章目录

  • 解析
  • 思路
  • 代码

解析

临时结构体t指向head的前一个结点
p0指针指向被删除结点的前一个结点
p1指针遍历链表
flag表示p0与p1指针的相对距离

思路

使用p1遍历链表,p1移动一次flag自加1
当flag>n时,p0同步移动
此时p1领先p0(n+1)个身位,保证了p0指向倒数第n个数据结点的前一个结点
遍历完成后
第n个数据结点的前结点p0指向第n个数据结点的后结点,完成在链表中删除第n个数据结点的操作
最后除去生成的结点t,并返回(这一步也可用 return t->next; 代替)

代码

struct ListNode* removeNthFromEnd(struct ListNode* head, int n){//初始化struct ListNode *t=(struct ListNode*)malloc(sizeof(struct ListNode));t->val=-1;t->next=head;//指针创建struct ListNode *p0=t,*p1=head;int flag=0;//遍历开始while(p1!=NULL){if(flag++>=n) {p0=p0->next;}p1=p1->next;}p0->next=p0->next->next;t=t->next;return t;
}

Leetcode题库 19.删除链表的倒数第N个结点(双指针法 C实现)相关推荐

  1. Java每日一题——>19. 删除链表的倒数第 N 个结点

    这是LeetCode上的 [19,删除链表的倒数第 N 个结点],难度为 [中等] 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 示例1 输入:head = [1,2,3, ...

  2. 小黑迷茫抑郁中的leetcode之旅:19. 删除链表的倒数第 N 个结点

    小黑代码 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): ...

  3. 【LeetCode笔记】19.删除链表的倒数第N个结点(Java、快慢指针)

    文章目录 题目描述 思路 & 代码 题目描述 重点在于一趟扫描实现 简单的做法:一趟扫描长度,一趟根据长度找到结点删除 思路 & 代码 两种特例情况,见注释 思路:根据N构造两个快慢指 ...

  4. LeetCode Algorithm 19. 删除链表的倒数第 N 个结点

    19. 删除链表的倒数第 N 个结点 Ideas 链表经典题目,还是09年考研408数据结构最后一道大题,在LeetCode上只能算中等难度的题目. 说回题目其实不难,之前跟着左神练了很多双指针的题目 ...

  5. 【LeetCode】【HOT】19. 删除链表的倒数第 N 个结点(双指针)

    [LeetCode][HOT 100]19. 删除链表的倒数第 N 个结点 文章目录 [LeetCode][HOT 100]19. 删除链表的倒数第 N 个结点 package hot;import ...

  6. 【力扣(LeetCode)】【C/C++】【19.删除链表的倒数第 N 个结点】

    学习时间: 2023年1月30日 题目描述: 题解分享: // 作 者 : 繁 华 倾 夏 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h&g ...

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

    描述: 19. 删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4, ...

  8. 力扣—— 19. 删除链表的倒数第 N 个结点(java)、剑指 Offer 22. 链表中倒数第k个节点(java)

    19. 删除链表的倒数第 N 个结点(java) 一.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3 ...

  9. 29. Leetcode 19. 删除链表的倒数第 N 个结点 (链表-双指针)

    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点.示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:输入:head = [1], ...

最新文章

  1. 细说进程、应用程序域与上下文之间的关系(一)——进程的概念与作用
  2. 心累了,就笑一笑,学会爱自己
  3. 爬虫——基本库的使用
  4. idea集成spring+spring MVC+mybatis问题
  5. mysql 触发器 分行_mysql 触发器
  6. 【Github上有趣的项目】TensorKart 自动驾驶马里奥赛车(玩不了)
  7. 使用 Vue + Flask 搭建单页应用
  8. Android RecyclerView详解
  9. python中那纠结的os.system()与空格处理
  10. ElasticSearch概述和定义
  11. 【翻译】.NET 5 Preview5发布
  12. c语言中文件如何插入数据,急求如何将下列C语言程序数据存储到文件中?
  13. JAVA面试常考系列三
  14. sql server 查询某个表被哪些存储过程调用
  15. Elixir 1.7改进错误处理、日志和测试
  16. 移动端背景图片自适应
  17. jenkins安装了中文插件发现界面还有英文的解决方法
  18. 一帘心事碎碎念,一眸雪舞剪剪风
  19. 两分钟内教会你如何给视频加配音,快速掌握配音技巧!
  20. 基于51单片机设计的交通灯

热门文章

  1. ie6 select出现在浮动层上面的解决方法
  2. IPC$共享和其他共享(C$、D$、Admin$)
  3. python学习手册
  4. cisco 《连接网络》实验wan综合实验_GNS3实验环境优化与安装
  5. [java] javax.el.PropertyNotFoundException: Property 'id' not found on type bean.Student
  6. 要想提高工作效率,请拒绝做这7种事
  7. Git内部原理之深入解析传输协议
  8. iOS之深入解析操作系统的架构
  9. Github之深入解析Ruby Gems缓存
  10. 面试题29. 顺时针打印矩阵