早教吧作业答案频道 -->数学-->
关于单链表逆置的一些问题,想了好久,望各位高手解答!谢谢我的财富值不多,回答好的话,我追加下面是标准的逆置算法:voidlinklistreverse(linklist&L){p=L->next;q=p->next;s=q->next;p->next=null;
题目详情
关于单链表逆置的一些问题,想了好久,望各位高手解答!谢谢 我的财富值不多,回答好的话,我追加
下面是标准的逆置算法:
void linklist_reverse(linklist &L)
{
p=L->next;q=p->next;
s=q->next;p->next=null;
while(s->next)
{
q->next=p;p=q;
q=s;s=s->next;
}
q->next=p;s->next=q;L->next=s;
}
这个程序我有两个地方不懂:1、为什么要先把q和s置空,即第四行的p-next=null
2、最后那句:L->next=s,如果要这句的话应该是个循环链表了,但题目没有说明是循环单链表啊.
下面是标准的逆置算法:
void linklist_reverse(linklist &L)
{
p=L->next;q=p->next;
s=q->next;p->next=null;
while(s->next)
{
q->next=p;p=q;
q=s;s=s->next;
}
q->next=p;s->next=q;L->next=s;
}
这个程序我有两个地方不懂:1、为什么要先把q和s置空,即第四行的p-next=null
2、最后那句:L->next=s,如果要这句的话应该是个循环链表了,但题目没有说明是循环单链表啊.
▼优质解答
答案和解析
我相信你的疑惑来自于这个题目本身,应该是一个——带有头结点——的——单链表 对函数传入的 L 就是头结点指针.对你的第一个问题,p->next=null,是因为在程序执行到此时,p指向了第一个节点,而这个节点将成为尾节点,而...
看了关于单链表逆置的一些问题,想了...的网友还看了以下:
写出下列算法的功能LinkListdemo(LinkListL){ListNode*q,*p;If 2020-05-17 …
数据结构的q->next=p->next;p->next=q;q->next=p->next;p- 2020-06-12 …
数据结构试卷三.阅读下面的算法(10分)LinkListmynote(LinkListL){//L 2020-06-12 …
阅读下列算法,指出算法A的功能和时间复杂度,其中h、g分别为单循环链表中两个节点指针.voidB( 2020-06-12 …
两题单链表逆置,求讲解1.p=head->next;head->next=NULL;while(p 2020-06-15 …
下列算法,指出算法A的功能和时间复杂度,其中h、g分别为单循环链表中两个节点指针.VoidB(in 2020-07-23 …
关于单链表逆置的一些问题,想了好久,望各位高手解答!谢谢我的财富值不多,回答好的话,我追加下面是标准 2020-11-04 …
数据结构.一个实现带头结点的逆序连接voidreverse(pointerh){pointerp,q 2020-11-17 …
指针p,q和r依次指向某循环链表中三个相邻的结点,交换结点*q和结点*r在表中次序的程序段是()[A 2020-12-05 …
数据结构算法问题voedBB(LNode*s,LNode*q){p=s;while(p->next! 2021-01-22 …