C++编程-leetcode-19-删除链表的倒数第N个结点
题目:
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
例子:
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
输入:head = [1,2], n = 1
输出:[1]
思路:
这道题很容易,但是许多人第一时间想到就是先遍历链表求出链表长度,再遍历一遍,然后遍历到倒数第N个再停止。但假设链表特别长,那么还可以再做优化,从头开始遍历链表,在遍历到第n个结点时,就新建一个标记S指向第一个结点,此时第一个结点S与已经遍历到的结点刚好相距n,也就是说,在接下来的遍历中,标记S和遍历的速度保持一致,当遍历到最后一个结点时,S指向的结点刚好就是倒数第n个结点,那么这种情况只遍历一次数组。
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode *pre=head;ListNode *p=pre->next;ListNode *now=head;n=n-1;while(n>0){n--;now=now->next;}if(now->next==NULL){head=head->next;return head;}now=now->next;while(now->next!=NULL){now=now->next;pre=pre->next;p=p->next;}pre->next=p->next;//free(p);return head;}
};
C++编程-leetcode-19-删除链表的倒数第N个结点相关推荐
- 29. Leetcode 19. 删除链表的倒数第 N 个结点 (链表-双指针)
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点.示例 1:输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:输入:head = [1], ...
- leetcode 19. 删除链表的倒数第 N 个结点(双指针应用)
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 示例 1: 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2: 输入:head = [1 ...
- LeetCode 19 删除链表的倒数第 N 个结点
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 解决方案 class Solution {public ListN ...
- leetcode 19. 删除链表的倒数第 N 个结点(c++)
思路分析 常规解法:双指针与栈,两种解法 题解1 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListN ...
- 【力扣(LeetCode)】【C/C++】【19.删除链表的倒数第 N 个结点】
学习时间: 2023年1月30日 题目描述: 题解分享: // 作 者 : 繁 华 倾 夏 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h&g ...
- 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 19 删除链表的倒数第N个节点
[链表|多解法] leetcode 19 删除链表的倒数第N个节点 1.题目 题目链接 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2-&g ...
- LeetCode-链表-19. 删除链表的倒数第 N 个结点
描述: 19. 删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head = [1,2,3,4, ...
- LeetCode.M19.删除链表的倒数第N个结点
LeetCode.M19 题目: 题目大意: 给定一个链表和一个数n,删除倒数第n个数. 数据范围: 如图所示 思路: 采用双指针.思路和找到数组中倒数第n个数一致,只不过这里需要找到链表的倒 ...
最新文章
- 哪怕你不认可,我还是要为R语言正名
- python3 x和python2 x区别_Python3.x和Python2.x的区别
- 一个前端在校生的2018年终总结
- 深度学习导论(4)神经网络基础
- 喜欢的一些话(不断更新)
- Python学习杂记之静态网页学习
- Android Paint 画笔使用详解 Android自定义View(六)
- 不会PS抠图?免抠(扣)PNG图片网就解决了
- 一文读懂cooie和session
- BZOJ 4154 kd-tree dfs序 + 二维空间的区间(矩阵)更新单点查找
- http报文格式_(一)深入浅出TCPIP之理解TCP报文格式和交互流程
- 按键精灵和python功能对比_AutoIt3和按键精灵的功能对比第2/2页
- 2021年值得推荐的几个可视化软件
- Excel技巧—两招轻松搞定汉字转拼音
- css中字体之间的距离是什么意思,css字符间距(css文字间距怎么设置)
- SS2H框架搭建,基础上篇
- 机器学习笔记(吴恩达老师)
- 传统餐桌行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- ubuntu图形化软件包管理工具synaptic
- 【注册测绘师】攻略 1.连续运行基准参考站(CORS)系统干货