鱼C论坛

 找回密码
 立即注册
查看: 1938|回复: 5

单项链表的一个小问题 请大佬帮忙回答一下

[复制链接]
发表于 2022-5-10 15:50:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
[单选] 下列语句中可以完成建立2结点的单向链表的功能的选项是。
A.head→next=new; new→next=head;

B.new→next=head;head=new;

C.new→next=head; head=new;new→next=Null;

D.head→next=Null; head→next=new;new→next=NULL;

Q:为什么不能选择D,选择B的话,new的next指向head,head又为new的地址,有什么意义?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-10 16:04:07 | 显示全部楼层

head  和 new 一个是头节点 一个是 新的节点是么?

B 感觉像头插法,先将 新的节点的下一个指向现在的头节点,此时 head 的地址就可以通过 new 的 next 找到了

然后再将 head 指向 new ,此时 new 已经可以找到 head ,即 new 的 下一个节点是 head

即此时链表的头节点变成了 new,而之前的头节点为 new 的下一个节点了

D 感觉对本题来说也可以吧,但是若链表中已有元素就会导致被清了,因为一开始进行了 next = null

怎么感觉 BD 对这题来说都对,哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-10 16:06:15 From FishC Mobile | 显示全部楼层
感觉bd都没啥毛病啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-10 17:47:55 | 显示全部楼层
直接对代码分析,假设head与new为链表节点。
对于A.head→next=new; new→next=head;
单向循环链表 head->new->head
对于B.new→next=head;head=new;
单向单项循环链表 new->head->head
对于C.new→next=head; head=new;new→next=Null;
单向单项循环链表 head->head
对于D.head→next=Null; head→next=new;new→next=NULL;
单向链表 head->new->null

另外提一点,指针是地址变量,是用来存储地址的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-10 23:39:46 | 显示全部楼层
逆鳞丶樱之羽 发表于 2022-5-10 17:47
直接对代码分析,假设head与new为链表节点。
对于A.head→next=new; new→next=head;
单向循环链表 head ...

请问,答案选B还是D呢(这题给出的答案是B)?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-11 10:23:39 | 显示全部楼层
jeremiah2077 发表于 2022-5-10 23:39
请问,答案选B还是D呢(这题给出的答案是B)?

假设head为头结点时,只有new为链表节点,
也就是说当head不作改变时,head一直是头节点来充当指标,
当你通过head=new这条语句时,head变成了new链表的拷贝了,
此时head也是链表节点了。
而其他选项中的head一直为头节点,当你把头节点删去时可得:
A. new
B. new->head->head
C. head->head
D. new
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 16:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表