博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer---从头到尾打印列表
阅读量:4302 次
发布时间:2019-05-27

本文共 1037 字,大约阅读时间需要 3 分钟。

剑指offer—从头到尾打印列表

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

解题思路:

这道题不难,可以使用栈来实现,将原数组的值依次存入一个新的栈中。然后再弹出。代码如下:

# -*- coding:utf-8 -*-# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    # 返回从尾部到头部的列表值序列,例如[1,2,3]    def printListFromTailToHead(self, listNode):        result = []        if listNode == None:            return []        while listNode != None:            result.append(listNode.val)            listNode = listNode.next        final= [result.pop() for i in range(len(result))]        return final

还可以使用一个递归来实现,递归的本质上就是一个栈结构。当我们访问一个节点时,先递归输出它后面的节点,最后再输出该节点。就完成了一个输出的反转。

使用python最后输出结果时,利用了它的切片,将当前值放到最后,前面链接其下一个节点的递归,这样依次进行一句代码就可以得到最后的结果。

# -*- coding:utf-8 -*-# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    # 返回从尾部到头部的列表值序列,例如[1,2,3]    def printListFromTailToHead(self, listNode):        if listNode == None:            return []        return self.printListFromTailToHead(listNode.next)+[listNode.val]

转载地址:http://tqmws.baihongyu.com/

你可能感兴趣的文章
CSS基础知识
查看>>
Nginx+PHP-FPM优化技巧总结
查看>>
Ubuntu安装Torque教程
查看>>
CentOS下使用tcpdump网络抓包用
查看>>
Java笔试面试题002
查看>>
Java笔试面试题003
查看>>
Java太阳系小游戏分析和源码
查看>>
Java笔试面试题004
查看>>
Java小游戏之打飞机(一)
查看>>
Java笔试面试题005
查看>>
oop_day02_类、重载_20150810
查看>>
Linux常用命令002之搜索命令locate、whereis、which、find、grep
查看>>
oop_day03_内存管理、引用类型数组
查看>>
Java小游戏之打飞机(二)
查看>>
oop_day04_继承、重写_20150812
查看>>
Java笔试面试题006
查看>>
oop_day05_package、public、static、final、内部类
查看>>
oop_day06_抽象类、接口_20150814
查看>>
Java笔试面试题007
查看>>
Java 抽象类与接口的区别
查看>>