在公司的时候无意中听到的,据说技术面的时候屡试不爽。题目如下:
一个单向链表,不知道head指针,只有当前节点的指针current,如何删除当前节点?
一般对链表的操作都要从head指针开始,操作当前节点必须有previous指针。这个题目需要独辟蹊跷:
解法:以删除next节点的方法变相删除current节点。具体做法就是将next节点的数据拷贝到current节点,删除next节点,即将current节点的next指针指向next节点的next节点。
问题:
1)如果current节点是tail节点,这种方法就不好使了。
2)如果其他地方有对next节点的引用,该引用会出现错误(不同语言可能情况不一样,比如java和c++)。
没了。。。
近期评论