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

}

};

相关推荐
wm104313 分钟前
代码随想录第四天
数据结构·链表
CoderCodingNo33 分钟前
【GESP】C++六级考试大纲知识点梳理, (3) 哈夫曼编码与格雷码
开发语言·数据结构·c++
牛马大师兄37 分钟前
数据结构复习 | 什么是数据结构?
数据结构
wu_asia2 小时前
方阵对角线元素乘积计算
数据结构·算法
想逃离铁厂的老铁2 小时前
Day43 >> 300.最长递增子序列 + 674. 最长连续递增序列+ 718. 最长重复子数组
数据结构·算法
宵时待雨3 小时前
数据结构(初阶)笔记归纳4:单链表的实现
c语言·开发语言·数据结构·笔记·算法
wm10433 小时前
代码随想录第三天 链表
数据结构·链表
BLSxiaopanlaile3 小时前
关于子集和问题的几种解法
数据结构·算法·剪枝·回溯·分解
じ☆冷颜〃4 小时前
交换代数的解析延拓及在CS的应用
c语言·数据结构·笔记·线性代数·密码学
程序员-King.4 小时前
day136—快慢指针—重排链表(LeetCode-143)
算法·leetcode·链表·快慢指针