2021-11-02 LeetCode 237.删除链表中的节点

LeetCode 237.删除链表中的节点

原题链接 ==11.2==

题目描述:

请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点

代码:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    void deleteNode(ListNode* node) {
        node->val = node->next->val;
        node->next = node->next->next;
    }
};

找不到要删除节点的前一个节点,通过将该节点赋值成下一个节点,然后再删除下一个节点来进行等价的删除操作。

写法2: 结构体赋值

class Solution {
public:
    void deleteNode(ListNode* node) {
        *node = *node->next;
    }
};

你可能感兴趣的:(2021-11-02 LeetCode 237.删除链表中的节点)