#include "iostream"
using namespace std;
struct ListNode {
int data;
struct ListNode *next;
};
ListNode* CloneList(ListNode* pHead)
{
if(!pHead) return NULL;
ListNode *pCloneHead = new ListNode;
ListNode *q = pCloneHead,*p = pHead,*s;
q->data = p->data; p = p->next;
while(p)
{
s = new ListNode;
s->data = p->data;
q->next = s;
q = s;
p = p->next;
}
q->next = NULL;
return pCloneHead;
}
void printList(ListNode* pHead)
{
ListNode* p = pHead;
while(p)
{
cout<<p->data<<"->";
p = p->next;
}
cout<<endl;
}
ListNode* CreatList()
{
ListNode * pHead = new ListNode;
ListNode *q = pHead,*s;
q->data = 0;
for(int i=1;i<9;i++)
{
s = new ListNode;
s->data = i;
q->next = s;
q = s;
}
q->next = NULL;
return pHead;
}
int main()
{
ListNode* pHead = CreatList();
cout<<"创建的链表"<<endl;
printList(pHead);
ListNode* pCloneHead = CloneList(pHead);
cout<<"复制的链表结果"<<endl;
printList(pCloneHead);
return 0;
}
运行结果: