leetcode 237
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is 1 -> 2 -> 3 -> 4
and you are given the third node with value 3
, the linked list should become 1 -> 2 -> 4
after calling your function.
解题思路:因为没有头结点,且只给出了当前结点,没有办法遍历找到其前一个节点。可以将当前结点的值至为下一个结点的值,然后删除下一个结点。
class Solution {
public:
void deleteNode(ListNode* node) {
if(node==NULL)
return;
node->val=node->next->val;//当前结点的值记录为下一个结点的值
node->next=node->next->next;//删除下一个结点
}
};