Leetcode题库 19.删除链表的倒数第N个结点(双指针法 C实现)
文章目录
- 解析
- 思路
- 代码
解析
临时结构体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实现)相关推荐
- Java每日一题——>19. 删除链表的倒数第 N 个结点
这是LeetCode上的 [19,删除链表的倒数第 N 个结点],难度为 [中等] 题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 示例1 输入:head = [1,2,3, ...
- 小黑迷茫抑郁中的leetcode之旅:19. 删除链表的倒数第 N 个结点
小黑代码 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): ...
- 【LeetCode笔记】19.删除链表的倒数第N个结点(Java、快慢指针)
文章目录 题目描述 思路 & 代码 题目描述 重点在于一趟扫描实现 简单的做法:一趟扫描长度,一趟根据长度找到结点删除 思路 & 代码 两种特例情况,见注释 思路:根据N构造两个快慢指 ...
- LeetCode Algorithm 19. 删除链表的倒数第 N 个结点
19. 删除链表的倒数第 N 个结点 Ideas 链表经典题目,还是09年考研408数据结构最后一道大题,在LeetCode上只能算中等难度的题目. 说回题目其实不难,之前跟着左神练了很多双指针的题目 ...
- 【LeetCode】【HOT】19. 删除链表的倒数第 N 个结点(双指针)
[LeetCode][HOT 100]19. 删除链表的倒数第 N 个结点 文章目录 [LeetCode][HOT 100]19. 删除链表的倒数第 N 个结点 package hot;import ...
- 【力扣(LeetCode)】【C/C++】【19.删除链表的倒数第 N 个结点】
学习时间: 2023年1月30日 题目描述: 题解分享: // 作 者 : 繁 华 倾 夏 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h&g ...
- LeetCode-链表-19. 删除链表的倒数第 N 个结点
描述: 19. 删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4, ...
- 力扣—— 19. 删除链表的倒数第 N 个结点(java)、剑指 Offer 22. 链表中倒数第k个节点(java)
19. 删除链表的倒数第 N 个结点(java) 一.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3 ...
- 29. Leetcode 19. 删除链表的倒数第 N 个结点 (链表-双指针)
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点.示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:输入:head = [1], ...
最新文章
- 细说进程、应用程序域与上下文之间的关系(一)——进程的概念与作用
- 心累了,就笑一笑,学会爱自己
- 爬虫——基本库的使用
- idea集成spring+spring MVC+mybatis问题
- mysql 触发器 分行_mysql 触发器
- 【Github上有趣的项目】TensorKart 自动驾驶马里奥赛车(玩不了)
- 使用 Vue + Flask 搭建单页应用
- Android RecyclerView详解
- python中那纠结的os.system()与空格处理
- ElasticSearch概述和定义
- 【翻译】.NET 5 Preview5发布
- c语言中文件如何插入数据,急求如何将下列C语言程序数据存储到文件中?
- JAVA面试常考系列三
- sql server 查询某个表被哪些存储过程调用
- Elixir 1.7改进错误处理、日志和测试
- 移动端背景图片自适应
- jenkins安装了中文插件发现界面还有英文的解决方法
- 一帘心事碎碎念,一眸雪舞剪剪风
- 两分钟内教会你如何给视频加配音,快速掌握配音技巧!
- 基于51单片机设计的交通灯
热门文章
- ie6 select出现在浮动层上面的解决方法
- IPC$共享和其他共享(C$、D$、Admin$)
- python学习手册
- cisco 《连接网络》实验wan综合实验_GNS3实验环境优化与安装
- [java] javax.el.PropertyNotFoundException: Property 'id' not found on type bean.Student
- 要想提高工作效率,请拒绝做这7种事
- Git内部原理之深入解析传输协议
- iOS之深入解析操作系统的架构
- Github之深入解析Ruby Gems缓存
- 面试题29. 顺时针打印矩阵