题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
问题:1 ,如何输入一个链表?—字典
2. 如何获得链表值 --字典映射 ?指针 数值
3. 如何从头到尾顺序返回?---- for i in range ()返回 总体来说就是将字典转化为列表 (简单说就是把这个链表上的节点一个个读到列表中,然后用[::-1]切片的方法实现逆序)
b = a[i:j] 表示复制a[i]到a[j-1],以生成新的list对象
> **补充**
> > a = [0,1,2,3,4,5,6,7,8,9]
b = a[i:j] # [1,2]
当i缺省时,默认为0,即 a[:3]相当于a[0:3] ;
当j缺省时,默认为len(alist), 即a[1:]相当于a[1:10]
当i,j都存在时,表示复制i到j的数据
当i,j都缺省时,a[:]就相当于完整复制一份a
>
> b = a[i:j:s]表示:i,j与上面的一样,但s表示步进,
缺省为1. 所以a[i:j:1]相当于a[i:j]
> 当s<0时,i缺省时,默认为-1.
j缺省时,默认为-len(a)-1 所以a[::-1]相当于 a[-1:-len(a)-1:-1],
也就是从最后一个元素到第一个元素复制一遍,即倒序。
http://www.cnblogs.com/mxh1099/p/5804064.html
用两个vector,一个vector在链表遍历的时候存储链表的值,另一个vector反向输出
在牛客网上执行
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# @listNode: 头结点
# write code here
l = []
while listNode:
l.append(listNode.val)
listNode = listNode.next
return l[::-1]
在Spyder上执行有一些不一样,因为把数据放在里面了,这里是不是就已经默认链表不为空???
看一下需要什么参数,逻辑顺序应该是怎么样的
# 实现一个链表类,只有一个值val和一个指向下一个节点的next'指针'
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# @listNode: 头结点
# write code here
l = []
while listNode:
l.append(listNode.val)
listNode = listNode.next
return l[::-1]
# 创建链表 a->b->c
a = ListNode(1)
b = ListNode(2)
c = ListNode(3)
a.next = b
b.next = c
# 实例化
if __name__=='__main__':
demo = Solution()
print(demo.printListFromTailToHead(a))