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

}

};

相关推荐
Languorous.11 小时前
C++数据结构进阶|堆(Heap)详解:从手写实现到面试高频实战
数据结构·c++·面试
玛卡巴卡ldf12 小时前
【LeetCode 手撕算法】(栈)有效括号、最小栈、字符串解码、每日温度、柱状图最大矩形
java·数据结构·算法·leetcode·力扣
_深海凉_12 小时前
LeetCode热题100-两两交换链表中的节点
算法·leetcode·链表
我头发还没掉光~12 小时前
P4147 玉蟾宫
数据结构·c++·算法
枕星而眠13 小时前
栈(Stack)与队列(Queue)核心知识总结
c语言·数据结构·后端·链表
Little At Air13 小时前
LinuxOS阻塞队列模型(单生产者单消费者)
linux·数据结构·c++
铁皮哥14 小时前
【力扣题解】LeetCode 25. K 个一组翻转链表
java·数据结构·windows·python·算法·leetcode·链表
ZOOOOOOU14 小时前
云平台赋能门禁终端,打造智慧社区一体化管理
大数据·数据结构·架构
Severus_black15 小时前
【初阶数据结构】C语言实现堆(Heap),巨详细!
c语言·数据结构
Han_han91915 小时前
List系列集合:
数据结构·windows·list