1. 程式人生 > 實用技巧 >《劍指offer》面試題9: 從尾到頭列印連結串列

《劍指offer》面試題9: 從尾到頭列印連結串列

題目描述

輸入一個連結串列,按連結串列從尾到頭的順序返回一個ArrayList。

解題思路:

這個題目沒有說清楚到底返回的是什麼,在程式碼當中傳入進來的值是一個Node物件,也就是連結串列當中的一個節點,它具有兩個值,一個值是它本身所具有的值,另外一個值則是它所指向的下一個節點的地址,我們只要通過利用這個next指向下一個Node的屬性,就可以很好的得到每一個節點所具有的值。然後題目當中隱含的意思是讓我們返回一個從尾到頭的連結串列的值所組成的連結串列,而不是把一系列連結串列物件倒過來。因此程式碼非常簡單,如下所示:

# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回從尾部到頭部的列表值序列,例如[1,2,3] # 這個題目沒有把條件說清楚,因此有很多種可能啊! # listNode不是一連串的Node而是Node的頭.... def printListFromTailToHead(self, listNode): # write code here ls=[]
while listNode: ls.append(listNode) listNode=listNode.next ls_two=[] i=len(ls)-1 while i>=0: ls_two.append(ls[i].val) i-=1 return ls_two

分分鐘求解掉。