链表的复制

来源:互联网 发布:海康网络高清摄像机 编辑:程序博客网 时间:2024/05/17 02:08
#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;  } 

运行结果: