单链表的的逆置(带头结点)
生活随笔
收集整理的這篇文章主要介紹了
单链表的的逆置(带头结点)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一個面試題,轉(zhuǎn)過來意思下,支持下原創(chuàng)博主。
轉(zhuǎn)載地址:http://blog.csdn.net/stpeace/article/details/8111188
#include<iostream>using namespace std;typedef struct Node {int data;struct Node *next; }Node,*List;List createList() {Node *head,*p1,p2;p1=p2=head=new Node;int num;cin>>num;while(0!=num){p1=new Node;p1->data=num;p2->next=p1;p2=p1;cin>>num;}p2->next=NULL;return head; }void printList(List p) {while(NULL==p->next){cout<<p->next->data<<endl;p=p->next;} }void releaseList(List p) {if(NULL==p->next)delete p;else{release(p->next);delete p;} }List reverseList(List p)//相當(dāng)于頭插法建立鏈表 {//讓p1和p2都指向第一個節(jié)點Node *p1=p->next;//p->next是頭結(jié)點后的一個節(jié)點Node *p2=p1;p->next=NULL;//分離p與p1,就是把p(相當(dāng)于頭結(jié)點)分離出來,便于頭插法操作while(NULL!=p1){p2=p1;p1=p1->next;p2->next=p->next;//相當(dāng)于頭插法P->next=p2;}return p; }int main() {List head=createList();printList(head);reverseList(head);printList(head);releaseList(head);return 0;}
總結(jié)
以上是生活随笔為你收集整理的单链表的的逆置(带头结点)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 双链表的创建,求长,插入,删除,打印,释
- 下一篇: 顺序栈初始化,判空,进栈,出栈,打印