Python-链表反转

这是一道关于链表反转的简单题,请教应该如何修改?
题目:
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

class ListNode(object):
    def __init__(self, val: int):
        self.val: int = val
        self.next: Optional[ListNode] = None

class Solution(object):
    def reverseList(self, head):
        if not head:
            return None
        l = []
        while head:
            l.append(head.val)
            head = head.next
        l = l[::-1]
        hn = ListNode(l[0]) 
        for i in range(1, len(l)):
            hn.next = ListNode(l[i])
            nnext = hn.next
            hn = nnext
        return hn

我明白为什么会只返回'[1]',但不知道如何修改成返回'[5, 4, 3, 2, 1]'的。

hn = ListNode(l[0]) 
base = hn
for i in range(1, len(l)):
    base.next = ListNode(l[i])
    base = base.next
return hn

目前我将后半部分改成这个,返回正确。感觉之前没有完全理解题目要求及链表特性

  • 这篇博客: Python3.9学习笔记(慕羽★)(一)中的    (5) 此外有些字符在语法中已经被占用比如 \ 和’ ',想要输出这些被占用的字符,可以通过转义字符的形式输出,比如我们想要输出\ \和’可以通过如下方式 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • print('\\\\')
    print('\'')