我正在處理反向打印鏈接列表而不銷燬的問題。我的具體問題是,反向打印鏈接列表
- 知道如果任何其他更好的想法,空間複雜度的提高,我現在的空間複雜度爲
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