当前位置: 首页 > news >正文

剑指offer16_在O(1)时间删除链表结点

在O(1)时间删除链表结点


给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。

假设链表一定存在,并且该节点一定不是尾节点。

数据范围

链表长度 [ 1 , 500 ] [1,500] [1,500]

样例
输入:链表 1->4->6->8删掉节点:第2个节点即6(头节点为第0个节点)输出:新链表 1->4->8
题解

(链表) O ( 1 ) O(1) O(1)

由于是单链表,我们不能找到前驱节点,所以我们不能按常规方法将该节点删除。
我们可以换一种思路,将下一个节点的值复制到当前节点,然后将下一个节点删除即可。

时间复杂度:只有常数次操作,所以时间复杂度是 O ( 1 ) O(1) O(1)

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:void deleteNode(ListNode* node) {// auto p = node->next;*node = *(node->next);delete p;//最好释放掉内存,当然仅针对该题结果来说不加这一行也没影响。}
};

相关文章:

  • SCI论文核心框架与写作要素小结
  • python打卡训练营打卡记录day44
  • Linux I2C 子系统全解:结构、机制与工程实战
  • linux——账号和权限的管理
  • [Java 基础]创建人类这个类小练习
  • 大模型验证数据集总结
  • 安卓开发:Reason: java.net.SocketTimeoutException: Connect timed out
  • 优化技巧--滑动窗口
  • MaskSearch:提升智能体搜索能力的新框架
  • HTML基础学习
  • 基于单片机的FFT的频谱分析仪设计
  • 泛型编程技巧——使用std::enable_if实现按类型进行条件编译​
  • Python 2.7 退役始末:代码架构缺陷与社区演进路线图
  • 栈的应用:表达式求值
  • Linux随笔
  • 滚珠导轨在光学设备中如何实现微米级运动?
  • 《Coevolutionary computation and its application》协同演化及其应用中文对照·第一章
  • Visual Studio如何引入第三方头文件——以部署OpenGL为例
  • Stream流性能分析及优雅使用
  • NER实践总结,记录一下自己实践遇到的各种问题。
  • 帝国网站怎么仿站/百度云资源共享
  • 济南建设网站制作/品牌网络推广运营公司
  • 新闻类网站怎么做seo/宁波网站推广方案
  • 芜湖炎黄做的网站/今日特大新闻新事
  • 设计网站建设常州/腾讯广告投放平台官网
  • 网站设计论文5000/自动友链网