设计一个算法,将链表中所有结点的链表方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求算法的空间复杂度为O(1)。

阅读: 评论:0

设计一个算法,将链表中所有结点的链表方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求算法的空间复杂度为O(1)。

设计一个算法,将链表中所有结点的链表方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求算法的空间复杂度为O(1)。

语言:C++

#include <iostream>
using namespace std;typedef struct LNode
{int data;LNode *next;
}LNode,*LinkList;//创建链表
int CreateList(LinkList &L,int n)
{LNode *p,*r;int i;L=new LNode;L->next=NULL;r=L;for(i=0;i<n;i++){p=new LNode;cin>>p->data;p->next=NULL;r->next=p;r=p;}return 0;
}//输出链表
void display(LinkList L)
{LNode *p;p=L->next;cout<<"(";while(p){cout<<p->data<<" ";p=p->next;}cout<<")"<<endl;
}//逆转
int VerList_L(LinkList &LA,LinkList &LC)
{LNode *pa;LNode *pc;pa=LA->next;pc=LC;while(pa){pc=pa;pa=pa->next;pc->next=LC->next;LC->next=pc;}delete LA;}int main()
{LinkList LA;LinkList LB;LinkList LC;int n;cout<<"请输入需要创建单链表的长度:"<<endl;cin>>n;cout<<"请依次输入需要存入的数据(尾插法):"<<endl;CreateList (LA,n);cout<<"单链表A为:";display(LA);LC=new LNode;LC->next=NULL;VerList_L(LA,LC);cout<<"逆转后单链表为:";display(LC);return 0;
}

 

本文发布于:2024-02-01 00:19:22,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170671796332446.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:算法   链表   复杂度   结点   原地
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23