C练题笔记之:Leetcode-面试题 02.03. 删除中间节点 && 237. 删除链表中的节点

面试题一开始看的很奇怪,因为我理解成给我的node是头,所以不知道删除什么。

后来才明白给我的是要删除的节点,而没有给我头。

237题的描述就很清楚。

既然如此,只能让自己成为自己下一个节点,然后删除下一个节点了。

题目:

C练题笔记之:Leetcode-面试题 02.03. 删除中间节点 && 237. 删除链表中的节点_第1张图片

C练题笔记之:Leetcode-面试题 02.03. 删除中间节点 && 237. 删除链表中的节点_第2张图片

结果:

面试题:

C练题笔记之:Leetcode-面试题 02.03. 删除中间节点 && 237. 删除链表中的节点_第3张图片

237:

C练题笔记之:Leetcode-面试题 02.03. 删除中间节点 && 237. 删除链表中的节点_第4张图片

代码:(代码完全一样)

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
void deleteNode(struct ListNode* node) {
    struct ListNode *q = node->next;
    node->val = q->val;
    node->next = q->next;
    free(q);
}

 

你可能感兴趣的:(C,刷题笔记)