题目
Delete Node in a Linked List
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function.
标签
Linked List
难度
简单
分析
题目意思是给定一个节点,删除链表里的这个节点。参数只有一个节点,即只知道当前节点和后面的节点。做法是用后面的节点覆盖当前节点。
C代码实现
void deleteNode(struct ListNode* node)
{
if(!node || !node->next)
return;
node->val = node->next->val;
node->next = node->next->next;
}