单项链表的一个小问题 请大佬帮忙回答一下
[单选] 下列语句中可以完成建立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的地址,有什么意义?
head和 new 一个是头节点 一个是 新的节点是么?
B 感觉像头插法,先将 新的节点的下一个指向现在的头节点,此时 head 的地址就可以通过 new 的 next 找到了
然后再将 head 指向 new ,此时 new 已经可以找到 head ,即 new 的 下一个节点是 head
即此时链表的头节点变成了 new,而之前的头节点为 new 的下一个节点了
D 感觉对本题来说也可以吧,但是若链表中已有元素就会导致被清了,因为一开始进行了 next = null
怎么感觉 BD 对这题来说都对,哈哈{:9_229:} 感觉bd都没啥毛病啊 直接对代码分析,假设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
另外提一点,指针是地址变量,是用来存储地址的。 逆鳞丶樱之羽 发表于 2022-5-10 17:47
直接对代码分析,假设head与new为链表节点。
对于A.head→next=new; new→next=head;
单向循环链表 head ...
请问,答案选B还是D呢(这题给出的答案是B)?{:9_241:} 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
页:
[1]