写出在链式存储结构下将线性表逆转的算法,要求使用最少的附加空间

 我来答
zhoujin1012
推荐于2017-11-23 · TA获得超过1414个赞
知道小有建树答主
回答量:786
采纳率:0%
帮助的人:1221万
展开全部
假设是单链表存贮,从头遍历到尾,遍历每个元素是将指针反转,只需要一个额外空间。

算法描述:
header : 指向链表头

p=header;
pre=NULL;
next=NULL;
while(p!=NULL)
{
next=p->next;
p->next=pre;
pre=p;
p=next;
}
head=p;

这样就反转了。用了两个额外空间,时间复杂度O(n).
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shark_8309
2010-10-26 · TA获得超过1024个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:280万
展开全部
双链表就简单啦,把每个结点向前和向后两个指针交换一下就是了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ok阿泰泰
2017-12-18
知道答主
回答量:1
采纳率:0%
帮助的人:911
引用zhoujin1012的回答:
假设是单链表存贮,从头遍历到尾,遍历每个元素是将指针反转,只需要一个额外空间。

算法描述:
header : 指向链表头

p=header;
pre=NULL;
next=NULL;
while(p!=NULL)
{
next=p->next;
p->next=pre;
pre=p;
p=next;
}
head=p;

这样就反转了。用了两个额外空间,时间复杂度O(n).
展开全部
最后应该是head=pre
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式