首页 > 试题广场 >

下列算法的功能是什么?

[单选题]

下列算法的功能是什么?

/*L是无头节点单链表*/
LinkList Demo(LinkList L){
    ListNode *Q,*P;
    if(L&&L->next){
        Q=L;
        L=L->next;
        P=L;
        while(P->next)
            P=P->next;
        p->next=Q;
    }
    return L;
}

  • 遍历链表
  • 链表深拷贝
  • 链表反转
  • 单链表转变为循环链表
先Q=L,然后从头开始遍历链表,到最后一个结点时,它的指针指向第一个结点,p->next=Q。
发表于 2017-03-30 22:03:24 回复(0)
就是将单链表转化为循环链表,在指针指向链表最后一个节点时,让他的next指向了第一个节点,就是循环链表啊
发表于 2016-09-10 11:25:16 回复(1)
  • A:其实A也算正确,while循环遍历了链表,遍历到最后,将p->next=Q构成了循环链表
  • B:不存在拷贝,更别提深拷贝
  • C:反转?不存在的,从头到尾一直在p->next
发表于 2018-01-18 15:17:09 回复(2)
注意这里的返回值和输入值是链表结构体,而不是链表指针
发表于 2020-05-15 12:55:39 回复(0)

没有用&会使L链表变成单循环链表吗

发表于 2019-09-19 10:41:57 回复(0)
可以将p换成L就可以看出来是循环链表
发表于 2019-05-24 17:01:35 回复(0)
将单链表转变为循环链表
发表于 2014-11-15 13:28:18 回复(0)
先Q=L,然后p从第二个开始遍历链表,当遍历到最后一个元素时,p的next赋给Q,实现循环单链表
发表于 2023-09-14 09:18:15 回复(0)
看了几遍,最终停留在p->next=Q,可得出它是循环
发表于 2022-04-22 09:28:44 回复(0)
A为什么不对呀
发表于 2019-04-11 18:04:48 回复(0)
最后有p->next=Q,也就是p的下个节点指向了第一个结点,变为了循环链表
编辑于 2017-06-05 14:49:35 回复(0)
为什么返回的是L,不应该是Q吗?
发表于 2016-07-15 18:48:51 回复(2)
确实选D
发表于 2015-09-06 15:05:47 回复(0)
B.    
肯定不是把单链表变成循环链表,因为Q->next = NULL;这句话把链打开了,怎么可能是循环链表.
这段代码是把原来链表的头结点变成新链表的末结点,把原来第二个数据结点,变成第一个数据结点
发表于 2015-04-26 01:42:23 回复(5)