剑指Offer(Python) 从尾到头打印链表

推荐编程平台

牛客网在线编程

题目描述

输入一个链表,从尾到头打印链表每个节点的值。

分析

链表的结构如下:

class ListNode:
     def __init__(self, x):
         self.val = x
         self.next = None

题目比较简单,要求是逆序打印链表的值,通过查看其他的语言版本的方法函数,我们可以知道系统判断成功的要求是返回一个逆序的数组。所以我们可以先构造一个空数组,通过判断ListNodenext查看下一个ListNode的值,将ListNodeval保存在数组里面就可以了。需要注意的时题目要求逆序,所以我们在保存数据的时候要插入到首位,涉及的方法为insert()
insert()

list.insert(index, obj)
  • index -- 对象 obj 需要插入的索引位置。
  • obj -- 要插入列表中的对象。

代码

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    # 返回从尾部到头部的列表值序列,例如[1,2,3]
    def printListFromTailToHead(self, listNode):
        l = []
        head = listNode
        while head:
            l.insert(0, head.val)
            head = head.next
        return l
Search by:GoogleBingBaidu