题目:
给你一个链表,删除链表的倒数第 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个结点相关推荐

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

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

  2. leetcode 19. 删除链表的倒数第 N 个结点(双指针应用)

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

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

    https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 解决方案 class Solution {public ListN ...

  4. leetcode 19. 删除链表的倒数第 N 个结点(c++)

    思路分析 常规解法:双指针与栈,两种解法 题解1 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListN ...

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

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

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

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

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

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

  8. [链表|多解法] leetcode 19 删除链表的倒数第N个节点

    [链表|多解法] leetcode 19 删除链表的倒数第N个节点 1.题目 题目链接 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2-&g ...

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

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

  10. LeetCode.M19.删除链表的倒数第N个结点

    LeetCode.M19 题目: 题目大意: ​ 给定一个链表和一个数n,删除倒数第n个数. 数据范围: 如图所示 思路: ​ 采用双指针.思路和找到数组中倒数第n个数一致,只不过这里需要找到链表的倒 ...

最新文章

  1. 哪怕你不认可,我还是要为R语言正名
  2. python3 x和python2 x区别_Python3.x和Python2.x的区别
  3. 一个前端在校生的2018年终总结
  4. 深度学习导论(4)神经网络基础
  5. 喜欢的一些话(不断更新)
  6. Python学习杂记之静态网页学习
  7. Android Paint 画笔使用详解 Android自定义View(六)
  8. 不会PS抠图?免抠(扣)PNG图片网就解决了
  9. 一文读懂cooie和session
  10. BZOJ 4154 kd-tree dfs序 + 二维空间的区间(矩阵)更新单点查找
  11. http报文格式_(一)深入浅出TCPIP之理解TCP报文格式和交互流程
  12. 按键精灵和python功能对比_AutoIt3和按键精灵的功能对比第2/2页
  13. 2021年值得推荐的几个可视化软件
  14. Excel技巧—两招轻松搞定汉字转拼音
  15. css中字体之间的距离是什么意思,css字符间距(css文字间距怎么设置)
  16. SS2H框架搭建,基础上篇
  17. 机器学习笔记(吴恩达老师)
  18. 传统餐桌行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  19. ubuntu图形化软件包管理工具synaptic
  20. 【注册测绘师】攻略 1.连续运行基准参考站(CORS)系统干货

热门文章

  1. 教你怎么把iconfont转换成png透明图片
  2. Online Multiple Object Tracking with Cross-Task Synerg
  3. AndroidStudio蓝牙通信
  4. arcgis中去除图层白底,并导出透明底tif
  5. CSS实现横向图片滚动播放
  6. 2022年系统集成项目管理工程师考试,需要知道这些
  7. Pytorch版本代码修正
  8. Java中调整字距与行距的方法 其一(以DrawString为例)
  9. 74LS148 编码器 【数字电路】
  10. 使用DGL实现基于闲鱼图进行边分类算法