正在载入在线练习界面,本页内容可直接阅读…
AK CSP › NOIP 普及 2010 第一轮真题 › 第 16 题
NOIP 普及 2010 第一轮 第 16 题:删除双向链表结点的指针操作
题目
双向链表中有两个指针域 llink 和 rlink,分别指向该结点的前驱及后继。设 $p$ 指向链表中的一个结点,它的左右结点均非空。现要求删除结点 $p$,则下面语句序列中错误的是( )。
选项
- A. ``p->rlink->llink = p->rlink;p->llink->rlink = p->llink; delete p;``
- B. ``p->llink->rlink = p->rlink; p->rlink->llink = p->llink; delete p;``
- C. ``p->rlink->llink = p->llink;p->rlink->llink->rlink = p->rlink; delete p;``
- D. ``p->llink->rlink = p->rlink;p->llink->rlink->llink = p->llink; delete p;``
答案
A
题解
考点定位
本题考「双向链表删除」,对应大纲 3.2.3 链表(难度【2】)。
解题过程
删除 p:让 p 的前驱后继互指。正确操作两步:p->llink->rlink = p->rlink; p->rlink->llink = p->llink;
错误选项分析(A):p->rlink->llink = p->rlink——让后继指向它自己,链断裂 ✗。
选 A。
易错提醒
① 删除结点 p 的本质:绕过 p 重接两条链;② 选项里区分 = p->rlink 与 = p->llink 的方向:前驱的后继应改为 p 的后继。
真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1
京公网安备11010502062986号