在线性表的以下链式存储中,若链表头结点的地址未知,仅已
在线性表的以下链式存储中,若链表头结点的地址未知,仅已知p指针指向的结点,能否从中删除该结点?为什么?
(1)单链表;
(2)双链表;
答案
(1)单链表:不能删除。因为单链表只有后继指针,无法直接得到p的前驱结点;又未知头结点地址,不能遍历查找前驱,无法修改前驱结点的指针,故无法删除p。
(2)双链表:可以删除。双链表结点包含前驱和后继指针,利用 p->prior 找到前驱、 p->next 找到后继,修改前后结点的指针域,就可以将p结点删除,不需要知道头结点地址。