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;
}
};