LC 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.

当删除了倒数第二个节点后,链表变为 1->2->3->5.

思路:
1、让两个指针相距n的元素
2、两个指针同时往后走,直到第二个指针指向NULL
3、第一个指针的下一个就是要删除的元素
注意:一种特殊情况,删除的是头指针,根据两个指针无法相距n的元素来判断,直接返回head->next

struct ListNode {int val;struct ListNode* next;
};
struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {struct ListNode* p=head, * q=head,*temp;int count = 0;while (count <= n && q!=NULL) {q = q->next;count++;}if (count == n && q == NULL) return head->next;while (q != NULL) {p = p->next;q = q->next;}p->next = p->next->next;return head;
}

算法-使用双指针遍历删除链表节点相关推荐

  1. C语言通过链表指针删除链表节点的算法(附完整源码)

    C语言通过链表指针删除链表节点的算法 C语言通过链表指针删除链表节点的算法完整源码(定义,实现,main函数测试) C语言通过链表指针删除链表节点的算法完整源码(定义,实现,main函数测试) #in ...

  2. 在O(1)时间删除链表节点

    在O(1)时间删除链表节点 [题目]: 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该节点. void deleteNode(ListNode* pListHead, ListN ...

  3. 面试题18: 删除链表节点:删除链表中重复的节点

    /******************************************************************* *<剑指Offer--名企面试官精讲典型编程题>C ...

  4. C#刷剑指Offer | 在O(1)时间删除链表节点

    [C#刷题]| 作者 / Edison Zhou 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目),希望对你有帮助!本文题目为:在O(1)时间删 ...

  5. 关于递归删除链表节点为什么不会断链问题解释

    问题的由来:    当你第一次实现用递归实现链表删除功能的时候,是否有一丝丝的考虑过.这个问题呢?为什么对于非递归版本的删除必须要知道当前要删除节点的前驱,而需要对其前驱节点的next域指针进行修改. ...

  6. 【算法系列之八】删除链表的倒数第N个节点

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1 ...

  7. 剑指offer-面试题13.在O(1)时间删除链表节点

    题目:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点. 链表节点与函数的定义如下. 通常我们删除某个节点都是从头开始遍历到需要删除节点的前一个节点. 然后使得该节点的next ...

  8. 数据结构-在O(1)时间删除链表节点

    题目:给定单向链表的头指针和一个节点的指针,定义一个函数在O(1)时间删除该节点. 分析:本题目是基于一个假设,要删除的节点的确在链表中.因为我们需要O(n)的时间来判断该节点是否在链表中. /* 剑 ...

  9. LintCode Delete Node in the Middle of Singly Linked List 在O(1)时间复杂度删除链表节点

    中文描述: 给定一个单链表中的表头和一个等待被删除的节点(非表头或表尾).请在在O(1)时间复杂度删除该链表节点.并在删除该节点后,返回表头. 样例 给定 1->2->3->4,和节 ...

  10. 【Offer】[18-1] 【在O(1)时间内删除链表节点】

    题目描述 思路分析 测试用例 代码链接 题目描述 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 思路分析 一般我们删除单链表中的节点是需要遍历链表,找到要删除节点的前一个 ...

最新文章

  1. 当YOLOv5遇见OpenVINO
  2. SAP HUM 嵌套HU初探 III
  3. 关于arm处理器 内存编址模式 与 字节对齐方式 (转)
  4. 定时器0工作方式1,定时1s
  5. 1.23 实例:五子棋游戏
  6. Codeforces Round #421 B
  7. BCB6.0下安装Indy9
  8. css img重复_20 个 CSS 快速提升技巧
  9. Spring 基于 Java 的配置 - 如何不用Beans.xml照样描述bean之间的依赖关系
  10. hive币涨幅空间大吗_自动消防水炮只能安装在大空间场所吗
  11. 搜狗入选Fast Company最具创新力公司,智能翻译机表现抢眼
  12. LeetCode 99. Recover Binary Search Tree
  13. Dojo 1.7正式发布
  14. python 匿名函数 与 重要的内置函数
  15. Android Studio NDK开发
  16. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(十)——稳定性与频率补偿
  17. C#实现驱动级模拟按键
  18. iPhone线控耳机如何使用教程
  19. 【100%通过率】华为OD机试真题 Python 实现【获取最大软件版本号】【2022.11 Q4 新题】
  20. 第2.1章 scrapy之国内高匿代理IP爬取

热门文章

  1. JavaScript 时间格式化
  2. You are the reason I am
  3. 微信签名错误解决步骤
  4. iOS集成支付宝支付 Alipay
  5. 项目经验怎么写HTML,简历中的项目经验怎么写
  6. Unity 调用 JAR
  7. 高通量测序领域常用名词解释
  8. 《动手学深度学习》(PyTorch版)代码注释 - 48 【Multi-scale_target_detection】
  9. CSS盒子模型隐藏的几种方式
  10. iOS判断 英文 数字 汉字等