LeetCode 面试题 02.03. 删除中间节点
题目链接:https://leetcode-cn.com/problems/delete-middle-node-lcci/
实现一种算法,删除单向链表中间的某个节点(除了第一个和最后一个节点,不一定是中间节点),假定你只能访问该节点。
示例:
输入:单向链表a->b->c->d->e->f中的节点c
结果:不返回任何数据,但该链表变为a->b->d->e->f
思路:意思就是删除这个节点,实际操作是把该节点的值用后面的值覆盖,删除后面的结点,因为单链表只能往后访问。数据结构1800填空题也出现过....
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * struct ListNode *next; 6 * }; 7 */ 8 9 void deleteNode(struct ListNode* node) { 10 struct ListNode *q=node->next; 11 node->val=q->val; 12 node->next=q->next; 13 free(q); 14 }