【劍指offer】Q6_叢尾到頭打印鏈表(python)

題目

輸入一個鏈表,按鏈表從尾到頭的順序返回一個ArrayList。

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
from collections import deque


class Solution:
    # 返回從尾部到頭部的列表值序列,例如[1,2,3]
    def printListFromTailToHead(self, listNode):
        # write code here
        stack = deque()  # 使用雙向鏈表添加更快
        node = listNode

        while node != None:
            stack.appendleft(node.val)
            node = node.next

        return list(stack)  # 題目要求返回list 或許直接用list效率更高? list擴大內存採用連續分配還是複製?




要點

題目給出的是單向鏈表,只能從頭到尾,要從尾到頭進行操作,很顯然是“先進後出”,自然想到了使用棧進行處理,本題也可使用遞歸,但要當心鏈表過長導致堆棧溢出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章