《剑指offer》6.从尾到头打印链表

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

方法一:迭代

思路:遍历链表,将当前节点的值加入到列表中。遍历结束后,翻转该列表。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None

class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
result = []
node = listNode
while node:
result.append(node.val)
node = node.next
return result[::-1]

方法二:递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None

class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
result = []
self.__printList(listNode, result)
return result

def __printList(self, listNode, result):
if listNode is None:
return
self.__printList(listNode.next, result)
result.append(listNode.val)

----------本文结束感谢您的阅读----------
坚持原创技术分享,您的支持将鼓励我继续创作!