这是一道关于链表反转的简单题,请教应该如何修改?
题目:
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 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
目前我将后半部分改成这个,返回正确。感觉之前没有完全理解题目要求及链表特性
print('\\\\')
print('\'')