我正在处理反向打印链接列表而不销毁的问题。我的具体问题是,反向打印链接列表
- 知道如果任何其他更好的想法,空间复杂度的提高,我现在的空间复杂度为
O(n)
使用递归调用堆栈; - 想知道提高算法时间复杂度的任何想法?
顺便说一句:如果我当前的代码有什么问题,比如逻辑错误,请随时提供建议。
class LinkedListNode:
def __init__(self, value, nextNode):
self.value = value
self.nextNode = nextNode
def print_reverse(self):
if not self.nextNode:
print self.value
return
else:
self.nextNode.print_reverse()
print self.value
if __name__ == "__main__":
head = LinkedListNode('a', LinkedListNode('b', LinkedListNode('c', LinkedListNode('d', None))))
head.print_reverse()
的一个方向喜欢列表,这是你可以得到最好的复杂性。你可以创建一个双链表(一个指向前一个节点的指针),并且你将拥有'O(1)'来处理复杂的内存。 – Matei