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

}

};

相关推荐
Live&&learn23 分钟前
数据结构vs 内存结构
数据结构·操作系统·内存结构
buyue__25 分钟前
C++实现数据结构——队列和栈
数据结构
太理摆烂哥42 分钟前
哈希表实现
数据结构·哈希算法·散列表
无敌最俊朗@9 小时前
力扣hot100-206反转链表
算法·leetcode·链表
Kuo-Teng9 小时前
LeetCode 279: Perfect Squares
java·数据结构·算法·leetcode·职场和发展
CoderYanger10 小时前
B.双指针——3194. 最小元素和最大元素的最小平均值
java·开发语言·数据结构·算法·leetcode·职场和发展·1024程序员节
SalvoGao10 小时前
Python学习 | 怎么理解epoch?
数据结构·人工智能·python·深度学习·学习
前进的李工12 小时前
LeetCode hot100:094 二叉树的中序遍历:从递归到迭代的完整指南
python·算法·leetcode·链表·二叉树
兩尛13 小时前
215. 数组中的第K个最大元素
数据结构·算法·排序算法
9523613 小时前
数据结构-堆
java·数据结构·学习·算法