美文网首页
在O(1)时间删除单链表结点

在O(1)时间删除单链表结点

作者: Arya鑫 | 来源:发表于2017-09-04 21:47 被阅读34次

题目: 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。

问题:单链表中是否一定存在删除的这个结点?

思路:把下一结点的内容复制到需要删除的结点,删除下一结点,相当于删除当前结点。   当我们想删除一个结点时,并不一定要删除这个结点本身。可以先把下一个结点的内容复制出来覆盖被删除结点的内容,然后把下一个结点删除。

假定待删除结点在链表中。

平均复杂度为[(n-1)*O(1)+O(n)]/n,结果还是O(1),符合面试官的要求。

相关文章

网友评论

      本文标题:在O(1)时间删除单链表结点

      本文链接:https://www.haomeiwen.com/subject/svlyjxtx.html