1 条题解
-
0
解析(文字) 第1题:在带头结点的循环单链表中,判断链表为空只需检查头结点的 next 是否指向自身。其他选项错误:单链表中已知结点指针无法 O(1) 删除(需前驱);循环链表尾结点 next 指向头结点,空指针可以存在(如空链表);循环双链表尾结点 next 应指向头结点,不是 nullptr。选 D。
第2题:在双向循环链表结点 p 之前插入 s,正确顺序为:s->next = p; s->prev = p->prev; p->prev->next = s; p->prev = s。对应选项 C。其他选项指针操作有误。选 C。
第3题:删除 cur->next 结点后,需要将 cur->next 指向 del->next,即 cur->next = del->next。选 B。
第4题:双向链表查找指定歌曲需要从头遍历,时间复杂度 O(n)。选 B。
第5题:头插新结点时,若原链表非空,需将原头结点的 prev 指向新结点,即 head->prev = p。选 C。
第6题:链表插入和删除元素(已知位置)效率高,时间复杂度 O(1),不是 O(n),因此 C 错误。选 C。
第7题:循环单链表中,最后一个节点的 next 指针指向第一个节点。选 C。
第8题:虚拟头结点初始化应让 dummyHead->next = head,且 cur = dummyHead,方便统一处理。选 A。
第9题:链表每个节点需要额外存储指针,因此存储相同数目整数时,链表比数组占用更多内存,C 错误。选 C。
第10题:在双向循环链表结点 p 之后插入 s,正确顺序为:s->next = p->next; p->next->prev = s; s->prev = p; p->next = s。对应 D。选 D。
第11题:链表不具备随机访问特点,只能顺序访问。选 A。
第12题:A 选项中 p->next->prev = p->next 错误,应该为 p->next->prev = p->prev。因此 A 错误。选 A。
第13题:链表在已知位置插入或删除节点效率高(O(1)),而数组需要移动元素(O(n))。选 C。
第14题:head 是指针,不能使用 head.data,应使用 head->data 或直接比较指针。C 选项语法错误,不能填写。选 C。
第15题:双向链表尾插需要三步:tail->next = newNode; newNode->prev = tail; tail = newNode。对应 D。选 D。
第16题:描述符合循环链表定义,正确。选 A(正确)。
第17题:链表不能随机查找,只能顺序查找,因此说法错误。选 B(错误)。
第18题:单链表可以在任意位置插入删除,不只限于表头,错误。选 B(错误)。
第19题:链表节点物理存储可以不连续,正确。选 A(正确)。
第20题:环形链表适合循环调度,正确。选 A(正确)。
第21题:头插头删在单链表和双链表中都是 O(1),正确。选 A(正确)。
第22题:用后继结点覆盖当前结点并删除后继,可实现 O(1) 删除非尾结点,正确。选 A(正确)。
- 1
信息
- ID
- 6094
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者