【发布时间】:2016-12-30 23:16:52
【问题描述】:
我正在研究反向打印链表而不破坏的问题。我的具体问题是,
- 想知道是否有其他更好的想法,空间复杂度改进,我目前的空间复杂度是
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)用于内存复杂性
标签: python algorithm python-2.7 linked-list