下面代码遍历并输出一个循环单链表,其中 head 指向链表的第一个节点,横线处应填入的是( )。 class Node: def __init__(self, val): self.val = val self.next = None def printList(head): if head is None: return p = head # ---------------------------------------- print()
A:while p is not None: print(p.val, end=" ") p = p.next
B:while p.next is not None: print(p.val, end=" ") p = p.next
C:while True: print(p.val, end=" ") p = p.next if p == head: break
D:while p: print(p.val, end=" ") p = p.next
正确答案:C
答案解析
遍历循环单链表需从头节点开始,逐个访问后续节点,直至再次回到头节点为止。由于链表无空指针结尾,不能依赖 next 为 None 作为循环终止条件。应使用无限循环结构,先输出当前节点值,再移动指针至下一个节点,当指针重新指向头节点时结束循环。遍历过程中每个节点均需被访问且仅输出一次,起始节点也必须参与输出。
试卷来源:202606 CCF-GESP编程能力等级认证Python五级真题