一道关于链表的面试题

Posted by 冰河 at 10:43 Add comments 12,163 Views
242011

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

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

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

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

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

没了。。。

相关日志

6 Responses to “一道关于链表的面试题”

  1. 第一种情况应该进行错误处理。
    第二种情况就应该考虑数据结构和算法的整体性了。

  2. 现在都生疏了,脑子里完全想不到该怎么解……

  3. 又学到一点:难倒自己的不是智慧,而是思维方式。

  4. 有没有办法避免出现的那两个问题呢?

Leave a Reply

(required)

(required)

click to change(必须)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Protected by WP Anti Spam
© 2009 - 2018 冰河的博客