标签:
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.
#include<iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
void deleteNode(ListNode* node) {
if(node==NULL)
return;
ListNode* ptr1=node;
ListNode* ptr2=node->next;
ListNode* ptr3=ptr2->next;
while(1)
{
ptr1->val=ptr2->val;
if(ptr3==NULL)
break;
ptr1=ptr1->next;
ptr2=ptr2->next;
ptr3=ptr3->next;
}
ptr1->next=NULL;
return;
}
int main()
{
ListNode* root=NULL;
root=new ListNode(0);
root->next=new ListNode(1);
deleteNode(root);
}
leetcode_237题——Delete Node in a Linked List(链表)
标签:
原文地址:http://www.cnblogs.com/yanliang12138/p/4658191.html