03_从头到尾打印链表【python】

2019-08-11  本文已影响0人  NWPU_HaiboWu

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"""
上一篇 下一篇

猜你喜欢

热点阅读