一道关于链表的面试题

Posted by 冰河 at 10:43 6 Responses » 12,141 Views
242011

在公司的时候无意中听到的,据说技术面的时候屡试不爽。题目如下:

一个单向链表,不知道head指针,只有当前节点的指针current,如何删除当前节点?

一般对链表的操作都要从head指针开始,操作当前节点必须有previous指针。这个题目需要独辟蹊跷:

解法:以删除next节点的方法变相删除current节点。具体做法就是将next节点的数据拷贝到current节点,删除next节点,即将current节点的next指针指向next节点的next节点。

问题:
1)如果current节点是tail节点,这种方法就不好使了。
2)如果其他地方有对next节点的引用,该引用会出现错误(不同语言可能情况不一样,比如java和c++)。

没了。。。

© 2009 - 2018 冰河的博客