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

一、前言

刷题平台:牛客网

二、题目

输入一个链表,返回一个反序的链表

1、思路

通常,这种情况下,我们不希望修改原链表的结构。返回一个反序的链表,这就是经典的“后进先出”,我们可以使用栈实现这种顺序。每经过一个结点的时候,把该结点放到一个栈中。当遍历完整个链表后,再从栈顶开始逐个输出结点的值,给一个新的链表结构,这样链表就实现了反转。

2、代码

Python:

直接使用列表的插入方法,每次插入数据,只插入在首位。

# -*- coding:utf-8 -*-
# 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 = []
        while listNode:
            result.insert(0, listNode.val)
            listNode = listNode.next
        return result

 

posted @ 2019-10-23 22:24  百家齐鸣  阅读(116)  评论(0编辑  收藏  举报