单向链表向后—python代码

自己想了半天才想明白,记录下来,随时回顾。

定义节点类:

class Node():
    def __init__(self, cargo=None, next=None):
        self.cargo = cargo
        self.next = next

    def __str__(self):
        # 测试基本功能,输出字符串
        return str(self.cargo)

通过定义一个一个节点来定义链表:

node1 = Node(1)
node2 = Node(2)
node3 = Node(3)
# 节点之间的关系
node1.next = node2
node2.next = node3

通过输入第一个节点,循环整个链表然后顺序打印整个链表:

def printList(node):
    while node:
        print node
        node = node.next
        
printList(node1)
1
2
3

使用递归的方法来打印,主要步骤如下:
1.将list拆分成两个部分,head:第一个元素,tail:其余元素
2.向后打印
3.打印第一个元素

''' 
    从printBackward(1)跳到printBackward(2),再跳到printBackward(3),然后进入printBackward(None).
    运行printBackward(None),return后回到printBackward(3)还没结束所以继续运行最后一行的print (head, tail).
    等printBackward(3)结束后,又回到了printBackward(2),最后回到printBackward(1),结束函数的运行.
'''
def printBackward(lists):
    if lists == None:
        return          '''return也很神奇,不能省略'''
    head = lists
    tail = lists.next
    print(head, tail)

    printBackward(tail)  '''这里的递归很神奇'''
    print(head, tail)

printBackward(node1)
1 2
2 3
3 None
3 None
2 3
1 2

更简便的倒向输出方法:

def printBackward(lists):
    if lists == None:return
    printBackward(lists.next)
    print lists
printBackward(node1)
3
2
1

敲黑板:

从printBackward(1)跳到printBackward(2),再跳到printBackward(3),然后进入printBackward(None)。
运行printBackward(None),return后回到printBackward(3)还没结束所以继续运行最后一行的print(head, tail)。
等printBackward(3)结束后,又回到了printBackward(2),最后回到printBackward(1),结束函数的运行。

原文链接在这里:

参考:https://blog.csdn.net/qq_39422642/article/details/78988976#:~:text=python%EF%BC%9A%E9%93%BE%E8%A1%A8%E5%AE%9A%E4%B9%89%E4%BB%A5%E5%8F%8A%E5%AE%9E%E7%8E%B0,%E4%B8%8B%E4%B8%80%E4%B8%AA%E8%8A%82%E7%82%B9%E7%9A%84%E9%93%BE%E6%8E%A5.

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、资源1项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值