python从键盘输入数字存到链表中_03_从头到尾打印链表【python】

本文介绍了如何使用递归和栈两种方法实现链表从尾到头的值转换为ArrayList。递归方式通过不断调用自身,栈的方式则是利用先进后出的特性。关键点包括判断空节点、正确处理链表终止条件。相关知识点涉及Python链表构建、is与==的区别以及数据结构中的栈操作。
摘要由CSDN通过智能技术生成

1.题目描述

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

2.思路

1.通过递归的方式来实现,递归正好与从尾到头契合

2.通过栈的思想来实现,创建一个数组,每次将元素存在数组的头

其次,要记得判断是否为空节点

3.实现

递归的方式

def printListFromTailToHead(self, listNode):

if listNode is None:

return []

return self.printListFromTailToHead(listNode.next)+[listNode.val]

栈的方式

def printListFromTailToHead(self, listNode):

stack=[]

if listNode == None:

return []

while listNode.next != None:

stack.insert(0,listNode.val)

listNode=listNode.next

stack.insert(0,listNode.val)

return stack

4.相关知识点

1.python构建链表,可以参考之前写的数据结构文章:单链表的实现

2.对于is 和==这两个操作符的理解

"""这里牵扯到用is/is not与==/!=的区别"""

"""在python中对象包含的三个基本要素,分别是:id(身份标识)、type(数据类型)和value(值)"""

"""is 比较的是id ==比较的是value"""

"""只有数值型和字符串型的情况下,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值