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 }

 

posted @ 2020-02-27 21:59  午夜的行人  阅读(...)  评论(...编辑  收藏
Live2D