单链表刷题
解法一:遍历链表一遍,按照单链表删除操作(删除中间需要记录前一个位置)进行即可,时间复杂度o(n)
注意点:头元素是要删除的元素,大量重复元素
解法一:新建一个没用的节点(带哨兵位的NULL),从前往后搜索,在新节点的后面依次往前插入节点。
时间复杂度O(N)
解法二:三指针prev,cur,next指针。
注意点:零个节点(空链表,直接返回),一个节点(),两个节点
next为空的状态,不能再指向下一个节点了,需要单独处理
时间复杂度O(N)
解法一:遍历一遍,记录counts,除以二,再遍历到counts/2的位置,返回即可.
奇数:5/2=2,+1
偶数:6/2=3,+1
时间复杂度o(n+n/2)
解法二:快慢指针,快指针一次走两步,慢指针一次走一步,时间复杂度O(n)
如何理解?假定fast最后走完全程为1&