首页 > 代码库 > (7)--逆序创建链表及链表反转
(7)--逆序创建链表及链表反转
1 #include <iostream> 2 using namespace std; 3 typedef struct LNode 4 { 5 int data; 6 LNode *next; 7 }LNode,*LinkList; 8 //逆位序输入n个元素的值,建立带头结点的单链线性表 9 LinkList createLinklist(LinkList &L)10 {11 L = (LinkList)malloc(sizeof(LNode));12 L->next = NULL;//建立头结点13 for (int i = 0; i <= 10;i++) {14 LinkList p = (LinkList)malloc(sizeof(LNode));15 p->data =http://www.mamicode.com/ i;16 p->next = L->next;17 L->next = p;18 }19 return L;20 }21 //链表反转22 LinkList listReversal(LinkList &L)23 {24 LinkList preNode=NULL; //前一个节点25 LinkList node = L->next; //后一个节点26 LinkList nextNode = NULL;//中间节点27 while (node!=NULL) {28 nextNode = node->next; //保存下一个节点的值29 node->next = preNode; //把当前节点的下一个节点指向preNode;30 preNode = node; //将preNode向后移动指向此时的node31 node = nextNode; //将node向后移动指向nextNode32 }33 L->next = preNode;34 return L;35 }36 int main()37 {38 LinkList linkList;39 LinkList L=createLinklist(linkList);40 LinkList LL=listReversal(L);41 LL = LL->next;42 while (LL) {43 cout << LL->data << " ";44 LL = LL->next;45 }46 cout << endl;47 return 0;48 }
(7)--逆序创建链表及链表反转
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。