题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
思路:
1、第一种方法是正常从头到尾打印链表,存储在列表或者栈中,如果存储在列表中就翻转一下列表,存储在栈中就直接pop元素即可(利用栈后进先出特性)
2、将链表翻转,然后输出链表元素
Solution:
Python
(1)
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
arraylist = []
while listNode:
arraylist.append(listNode.val)
listNode = listNode.next
return arraylist[::-1]
(2)
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
if listNode == None:
return []
cur = listNode
pred = cur.next
cur.next = None
while pred:
tmp = pred.next
pred.next = cur
cur = pred
pred = tmp
Arraylist = []
while cur:
Arraylist.append(cur.val)
cur = cur.next
return Arraylist