码迷,mamicode.com
首页 > 其他好文 > 详细

给定链表的头指针和一个结点指针,在O(1)时间删除该结点

时间:2014-07-25 13:54:31      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   数据   re   c   代码   div   

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

具体思路:把头结点的数据直接copy到要删除的结点处,然后头指针向后移动一个结点,再free掉原来的头指针指向的结点,这样等于把要删除的结点删除了。当链表只有一个结点或者要删除的结点是头结点或尾结点时,这种方法也是成立的,所以不需要做特殊的处理。假设链表总共有n个结点,我们的算法在n-1总情况下时间复杂度是O(1),只有当给定的结点处于链表末尾的时候,时间复杂度为O(n)。那么平均时间复杂度[(n-1)*O(1)+O(n)]/n,仍然为O(1),所以满足条件。

具体代码省略……

 

给定链表的头指针和一个结点指针,在O(1)时间删除该结点,布布扣,bubuko.com

给定链表的头指针和一个结点指针,在O(1)时间删除该结点

标签:style   blog   color   数据   re   c   代码   div   

原文地址:http://www.cnblogs.com/whmIT/p/3867544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!