实现单链表的倒置
指針L指向鏈表的哨兵節點,遍歷鏈表,L改指向為所要求解鏈表的哨兵節點,遍歷到當前元素時,將該元素插在哨兵節點和第一個真正節點之間,遍歷結束時,于是
就得到了反向鏈表。
#include<iostream>using namespace std;typedef struct Node{int data;struct Node *next; }LNode,*LinkList;LNode *Create_LinkList()//創建鏈表 {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)//反轉鏈表 {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; }?
轉載于:https://www.cnblogs.com/yanglf/archive/2012/10/30/2747033.html
總結
- 上一篇: 《C#高级编程》 读书心得1--核心C#
- 下一篇: 【转】IT名企面试:腾讯笔试题(2)