题目描述
输入一个链表,按链表从尾到头的顺序返回一个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
分分钟求解掉。