使用 ADT 链接列表和以下代码,我将如何用 Big O 表示法表示运行时?:
def reverse (self):
(1)if self._head is not None:
(2)temp = self._head.item
(3)self._head = self._head.next
(4)self.reverse()
(5)self.append(temp)
我的思考过程:第 1 - 3 行基本上是不变的,因为它们只是从链接列表的开头设置和获取项目,第 5 行根据定义是 theta(n)。每次列表变小,所以我认为函数运行 n(n-1)(n-2).... 暗示它是 theta(n!)。我能得到一些帮助吗?