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

剑指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;//最好释放掉内存,当然仅针对该题结果来说不加这一行也没影响。}
};
http://www.xdnf.cn/news/12003.html

相关文章:

  • Google AI 模式下的SEO革命:生成式搜索优化(GEO)与未来营销策略
  • 假票入账会怎样?
  • 沉金电路板有哪些特点?
  • JDK 8 到 JDK 24 新特性大全
  • [3-02-01].第13节:三方整合 - Jedis客户端操作Redis
  • 基于VMD-LSTM融合方法的F10.7指数预报
  • return this;返回的是谁
  • 遍历继承QObject的对象的属性
  • macOS 连接 Docker 运行 postgres,使用navicat添加并关联数据库
  • Inno Setup 脚本中常用术语释义
  • Python中库的安装使用过程详解
  • Spring Boot微服务架构(十一):独立部署是否抛弃了架构优势?
  • 嵌入式Linux之RK3568
  • 本地日记本,用于记录日常。
  • OpenHarmony 5.0横竖屏界面适配
  • SEM: Enhancing Spatial Understanding forRobust Robot Manipulation
  • QMap清空手动分配的内存
  • 在WordPress上添加隐私政策页面
  • 深入解析 C++ 多态:从原理到实战
  • 一键试衣,6G显存可跑
  • 6.promise在哪个线程执行?(2)
  • Three.js进阶之音频处理与展示
  • C++.vector 容器(1.5w字)
  • 虚幻网络执行宏-核心作用是根据网络环境中的不同执行环境
  • 抗辐射·耐温差·抑振动:解析猎板PCB真空塞孔在航天电子中的核心价值​
  • 图像局部精度超限情况
  • GDB的调试
  • HTB 靶机 SolarLab Write-up(Medium)
  • Nginx 安全设置问题
  • 计算机I/O系统:数据交互的核心桥梁