带头结点的循环/非循环单链表删除开始结点的时间复杂度

  • 数据结构的辅导书上答案是两个都是O(1).
  • 我觉得循环单链表要找到最后一个结点,把最后一个指针指向新的开始结点,所以,时间复杂度应该是O(n)。 是不是我哪里想错了呢?

带头结点的循环单链表是尾结点是指向头结点的,删除开始结点不影响,所以不需要遍历,时间复杂度为O(1)
不带头结点的循环单链表尾结点是指向开始结点的,这时候需要遍历,为O(n)

https://www.docin.com/p-945254977-f2.html

时间复杂度是O(1),不需要一次遍历