在单链表、双向循环链表和单循环链表中,若仅知道指针 p 指向某结点,不知道头指针,能否将结点 p 从相应的链表中删除?若可以,时间复杂度各为多少。


在单链表、双向循环链表和单循环链表中,若仅知道指针 p 指向某结点,不知道头指针,能否将结点 p 从相应的链表中删除?若可以,时间复杂度各为多少。

正确答案:要实现删除 p 结点的操作,必须找到其前驱结点,修改其指针域的值使其指向 p 的后继结点,以实现删除结点 p 。单链表不行,因此不知道头指针就无法找到结点 p 的前驱结点。双向循环链表和单循环链表可以可以实现删除 p 结点。单循环链表删除 p 结点的时间复杂度为 O(n) ,双循环链表删除 P 结点的时间复杂度为 O(1) 。


Tag:结点 单循环 复杂度 时间:2024-03-12 14:50:06