国际空间研究组织 | ISRO CS 2014 |问题 49
考虑一个单链表,其中 F 和 L 分别是指向链表的第一个和最后一个元素的指针。执行哪个给定操作的时间取决于链表的长度?
(A)删除列表的第一个元素
(B)交换列表的前两个元素
(C)删除列表的最后一个元素
(D)在列表末尾添加一个元素答案: (C)
解释:如果 F 和 L 分别是指向链表的第一个和最后一个元素的指针,那么:
i) 删除链表的第一个元素将不依赖于链表的长度,因为 F = F->next 并删除第一个节点。
ii) 交换链表的前两个元素也不需要链表的长度,只需取一个临时节点,交换链表的两个节点即可。
iii) 删除链表的最后一个元素,需要对链表进行长度遍历,以获得最后一个节点之前的节点的指针。
iv) 在列表末尾添加一个元素,可以通过使 L->next = new node 来完成
所以,正确的选项是(C)。
这个问题的测验