《链表逆序总结.doc》由会员分享,可在线阅读,更多相关《链表逆序总结.doc(4页珍藏版)》请在三一文库上搜索。
1、/C+ 逆置单链表的两种方法:循环和递归#includestruct nodeint id;node *next;*head;void add(node *p)node *p1,*p2;p1=head;p2=p1;while(p2)p1=p2;p2=p2-next;p1-next=p;p-next=p2;void show(node *p)while(p)coutidnext;/一种逆置单链表的方法node* rev(node *head) node *prev=NULL,*next=NULL; while(head) next=head-next; head-next=prev; prev=
2、head; head=next; return prev; /另一种逆置单链表的方法/*node * rev(node *head)/递归方式进行链表逆置 if(head=NULL|head-next=NULL) return head; node *tail=rev(head-next); head-next-next=head; head-next=NULL; return tail; */void ()head=new node;head-next=NULL;node *p;p=new node;p-id=7;add(p);p=new node;p-id=8;add(p);p=new node;p-id=9;add(p);cout输出:next);cout逆置后输出:next);