剑指Offer_第3题_从尾到头打印链表_Python3.6实现

版权声明:转载请联系作者 https://blog.csdn.net/sinat_21591675/article/details/84553856

一、题目描述

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

时间限制:1秒 空间限制:32768K 热度指数:667058 本题知识点: 链表

二、思路:

对于一个链表,每个节点由data和next组成,最后一个节点的next指向None。
题目输入的实际上是表头head。

这里先遍历链表,将元素存在 list 中,然后反向输出 list。可以用slice,也可以使用reversed()函数和sorted()函数。

  • reversed() 函数返回的是一个迭代器,而不是一个 list,需要再使用 list 函数转换一下。
  • sorted(reverse=True),其中 reverse=True 是按降序排列,reverse=False 是按照升序排列。
  • a[::-1]。

三、代码:

# -*- coding:utf-8 -*-
# Python3.6


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

class Solution:
    # 返回从尾部到头部的列表值序列,例如[1,2,3]
    def printListFromTailToHead(self, listNode):
        # write code here
        result = []
        head = listNode
        
        # Python的空关键字是None
        while head != None:
            result.append(head.val)
            head = head.next
        
        return result[::-1]

猜你喜欢

转载自blog.csdn.net/sinat_21591675/article/details/84553856