实现单链表的倒置
指針L指向鏈表的哨兵節(jié)點(diǎn),遍歷鏈表,L改指向?yàn)樗蠼怄湵淼纳诒?jié)點(diǎn),遍歷到當(dāng)前元素時(shí),將該元素插在哨兵節(jié)點(diǎn)和第一個(gè)真正節(jié)點(diǎn)之間,遍歷結(jié)束時(shí),于是
就得到了反向鏈表。
#include<iostream>using namespace std;typedef struct Node{int data;struct Node *next; }LNode,*LinkList;LNode *Create_LinkList()//創(chuàng)建鏈表 {LinkList L;LNode *s,*r;int x;s=(LNode *)malloc(sizeof(LNode));s->next=NULL;L=r=s;while(cin>>x,x){s=(LNode *)malloc(sizeof(LNode));s->data=x;s->next=NULL;if(L->next==NULL){L->next=s;}else{r->next=s;}r=s;}return L; }LinkList reverse(LinkList L)//反轉(zhuǎn)鏈表 {LNode *p,*q;p=L->next;L->next=NULL;while(p){q=p;p=p->next;q->next=L->next;L->next=q;}return L; }int main() {LinkList H;H=Create_LinkList();LNode *p;p=H->next;while(p){cout<<p->data<<" ";p=p->next;}cout<<endl;LinkList S;S=reverse(H);LNode *q;q=S->next;while(q){cout<<q->data<<" ";q=q->next;}cout<<endl;system("pause");return 0; }?
轉(zhuǎn)載于:https://www.cnblogs.com/yanglf/archive/2012/10/30/2747033.html
總結(jié)
- 上一篇: 《C#高级编程》 读书心得1--核心C#
- 下一篇: 【转】IT名企面试:腾讯笔试题(2)