摘要:
//找链表的中间结点/*已知单链表L,编写算法找出该链表的中间位置的结点。思考:1、一种想法就是从头遍历到尾部,记录长度。随后再次遍历一次,直到长度的二分之一即找到。时间复杂度为O(3n/2)2、另一种想法:设置快慢指针,快指针一次走两步,慢指针一次走一步,当快指针走到NULL的时候,慢指针的位置就... 阅读全文
摘要:
// 在O(1)时间内删除单链表结点/*思考:很显然链表是一个节点地址不连续的存储结构删除节点一般很容易会想到是修改p节点的前一个节点的next为p->next然而除非是双向链表,否则无法在常量级的时间里找到p的前节点转变思路:既然改变不了p前节点的next只能在p 本身动手脚那可以考虑修改p->d... 阅读全文