这是一个在采访中向我提出的问题.
"内存中有一个链表.你必须删除一个节点.你需要编写一个删除该节点的函数,该节点只删除节点的地址作为输入而不包括任何其他节点(包括头部)"
我给出了类似于下面帖子中回答的答案 - 将下一个节点的内容复制到要删除的节点中并删除下一个节点.
但是面试官再次问我,如果我传递最后一个节点的地址怎么办.我告诉他,因为下一个将是一个NULL,将NULL复制到数据字段以及下一个节点的地址也是NULL.然后他告诉我将会出现悬挂指针的问题......我对此并不了解.请问有人可以解决这个问题吗?这是一个通用的解决方案吗?
更新(两天后):再补充一点.考虑到列表末尾没有特殊节点.最后一个节点指向NULL,如果该节点作为输入,则如何使前一个节点指向NULL.还是不可能?
简单地说:如果给一个节点作为函数的输入,那么如何使引用它的指针指向NULL