给定单向链表的一个节点指针,定义一个函数在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->val = p->val;

node->next = p->next;

// 这两步的作用就是将 *(node->next) 赋值给 *node,所以可以合并成一条语句:

// *node = *(node->next);

delete p;

}

};

相关推荐
散11215 小时前
01数据结构-01背包问题
数据结构
消失的旧时光-194316 小时前
Kotlinx.serialization 使用讲解
android·数据结构·android jetpack
Gu_shiwww16 小时前
数据结构8——双向链表
c语言·数据结构·python·链表·小白初步
苏小瀚17 小时前
[数据结构] 排序
数据结构
_不会dp不改名_19 小时前
leetcode_21 合并两个有序链表
算法·leetcode·链表
睡不醒的kun20 小时前
leetcode算法刷题的第三十四天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划
吃着火锅x唱着歌20 小时前
LeetCode 978.最长湍流子数组
数据结构·算法·leetcode
Whisper_long20 小时前
【数据结构】深入理解堆:概念、应用与实现
数据结构
IAtlantiscsdn20 小时前
Redis7底层数据结构解析
前端·数据结构·bootstrap
我星期八休息20 小时前
深入理解跳表(Skip List):原理、实现与应用
开发语言·数据结构·人工智能·python·算法·list