删除链表的结点
请编写一个函数,使其可以删除某个链表中给定的(非末尾的)节点,您将只被给予要求被删除的节点。
比如:假设该链表为 1 -> 2 -> 3 -> 4 ,给定您的为该链表中值为 3 的第三个节点,那么在调用了您的函数之后,该链表则应变成 1 -> 2 -> 4 。
解题思路:由于已经明确表示不是末尾的节点,所以可以采用删除给与节点的下一节点,删除之前替换掉两节点的数据。
void deleteNode(ListNode* node) {
if(node->next==NULL)
return;
node->val=node->next->val;
ListNode *temp=node->next;
node->next=node->next->next;
delete temp;
}