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

}

};

相关推荐
流年如夢4 小时前
单链表进阶版 -->双向链表
数据结构·链表
流年如夢6 小时前
单链表 -->增、删、查、改等详细操作
c语言·数据结构
handler018 小时前
【算法模板】最小生成树:稠密图选 Prim,稀疏图选 Kruskal
c语言·数据结构·c++·算法
此生决int9 小时前
快速复习之数据结构篇——栈和队列
数据结构·c++
昵称小白9 小时前
子串专题部分
数据结构·算法·哈希算法
ShoreKiten10 小时前
cpp考前急救
数据结构·c++·算法
诙_11 小时前
C++数据结构--AVL树
数据结构
Cando学算法12 小时前
欧拉回路(一笔画)
数据结构·c++·图论
图码12 小时前
一文搞懂如何判断字符串是否为Pangram(全字母句)
数据结构·算法·网络安全·数字雕刻·ping++
khalil102012 小时前
代码随想录算法训练营Day-43 动态规划10 | 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
数据结构·c++·算法·leetcode·动态规划·子序列问题