剑指Offer(Python多种思路实现):从尾到头打印链表
面试6题:
题目:从尾到头打印链表
输入一个链表,从尾到头打印链表每个节点的值。
解题思路一:
# 6从尾到头打印链表 【递归】
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def printList(self, listNode): # listNode≠ListNode
# 装入列表反向打印
if not listNode:
return []
res = []
while listNode.next is not None:
res.append(listNode.val)
listNode=listNode.next
res.append(listNode.val)
return res[::-1]
def printList(self, listNode):
stack, h = [], listNode
while h:
stack.append(h, val)
h = h.next
return stack[::-1]
解题思路二:(换种写法)
def printListFromTailToHead(self, listNode):
stack, h = [], listNode
while h:
stack.append(h.val)
h = h.next
return stack[::-1]