剑指offer(3):从尾到头打印链表
输入一个链表,从尾到头打印链表每个节点的值。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by xuehz on 2017/8/22
"""
题目描述
输入一个链表,从尾到头打印链表每个节点的值。
"""
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
# 返回从尾部到头部的列表值序列,例如[1,2,3]
def printListFromTailToHead(self, listNode):
# write code here
l = [] # 定义一个栈 #先进后出
if listNode is None:
return l
head = listNode
while head:
l.insert(0, head.val) # l = [listNode.val]+l
head = head.next
return l
def printListFromTailToHead1(self, listNode):
l = []
if listNode is None:
return l
while listNode is not None:
l.append(listNode.val)
listNode = listNode.next
l.reverse() #l[::-1]
return l
if __name__ == '__main__':
node1 = ListNode(10)
node2 = ListNode(11)
node3 = ListNode(13)
node1.next = node2
node2.next = node3
S = Solution()
print(S.printListFromTailToHead2(node1))