下面是“基于python实现从尾到头打印链表”的完整攻略。
题目描述
输入一个链表的头节点,按照从尾到头的顺序返回节点的值。
解题思路
要打印链表的倒序,可以考虑借用栈的数据结构来实现。可以通过遍历链表,将节点依次压入栈中,最后依次弹出栈中的元素,即可实现将链表的值按照从尾到头的顺序打印出来。另一种更优化的方法是递归实现,将打印当前节点的值的过程看作递归操作,当递归到链表的尾部时开始打印节点的值,这样就可以实现将链表的值按照从尾到头的顺序打印出来。
代码实现
方法一:栈
class Solution:
def printListReversingly(self, head):
stack = []
while head:
stack.append(head.val)
head = head.next
return stack[::-1]
方法二:递归
class Solution:
def printListReversingly(self, head):
if not head:
return []
return self.printListReversingly(head.next) + [head.val]
示例说明
下面给出两个例子来说明这两种方法的具体实现:
示例一
输入:1 -> 2 -> 3 -> 4 -> 5
输出:[5, 4, 3, 2, 1]
示例二
输入:10 -> 20 -> 30 -> 40 -> 50
输出:[50, 40, 30, 20, 10]
以上就是“基于python实现从尾到头打印链表”的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于python实现从尾到头打印链表 - Python技术站