题目描述
题目描述
请编写一个函数,删除单链表中的一个节点(除了尾节点)。函数传入的参数是需要删除的节点的指针。
注意:
链表中至少包含两个节点;
所有节点的值互不相同;
给定的节点一定不是尾节点,且一定合法;
函数不需要返回任何值;
给定一个数组 head = [4, 5, 1, 9],表示如下链表:
4 -> 5 -> 1 -> 9
样例
样例1
输入:head = [4,5,1,9], node = 5
输出:[4,1,9]
解释:给出第二个节点,值是5,将其删除后
链表会变成 4 -> 1 -> 9.
样例2
输入:head = [4,5,1,9], node = 1
输出:[4,5,9]
解释:给出第三个节点,值是1,将其删除后
链表会变成 4 -> 5 -> 9.
算法
class Solution {
public:
void deleteNode(ListNode* node) {
ListNode *q=node->next;//复制下一个节点
node->next=q->next;
node->val=q->val;
delete q;
}
};
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度分析:blablabla
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度分析:blablabla
C++ 代码
blablabla