"""
输入一个链表,从尾到头打印每个节点的值
"""
class ListNode:
def __init__(self, x=None):
self.val = x
self.next = None
class Solution:
def printListFromTailToHead1(self, listNode):
"""
通过列表insert方式把链表顺序的元素插入列表头
:param listNode:
:return:
"""
if listNode.val == None:
return
l = []
head = listNode
while head:
l.insert(0, head.val)
head = head.next
return l
def printListFromTailToHead2(self, listNode):
"""
使用递归的方法 模拟栈
:param listNode:
:return:
"""
if listNode.val == None:
return
if listNode.next != None:
self.printListFromTailToHead2(listNode.next)
print(listNode.val)
def printListFromTailToHead3(self, listNode):
"""
模拟栈,然后reverse
:param listNode:
:return:
"""
if listNode.val == None:
return
l = []
head = listNode
while head:
l.append(head.val)
head = head.next
l.reverse()
return l
if __name__ == '__main__':
node1 = ListNode(10)
node2 = ListNode(11)
node3 = ListNode(12)
node1.next = node2
node2.next = node3
singleNode = ListNode(13)
nullNode = ListNode()
solution = Solution()
# print(solution.printListFromTailToHead1(node1))
# print(solution.printListFromTailToHead1(singleNode))
# print(solution.printListFromTailToHead1(nullNode))
solution.printListFromTailToHead2(node1)
solution.printListFromTailToHead2(singleNode)
solution.printListFromTailToHead2(nullNode)
# print(solution.printListFromTailToHead3(node1))
# print(solution.printListFromTailToHead3(singleNode))
# print(solution.printListFromTailToHead3(nullNode))
剑指offer python版 6.从尾到头打印链表
最新推荐文章于 2023-05-29 10:00:00 发布