https://leetcode.cn/problems/reverse-linked-list/
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
# 方法1:双指针法
# pre, cur = None, head
# while cur:
# tmp = cur.next
# cur.next = pre
# pre = cur
# cur = tmp
# return pre
# 方法2:借助列表法
lst = []
cur = head
while cur:
lst.append(cur.val)
cur = cur.next
lst = lst[::-1]
# 数组变成链表:倒序版
# pre = None
# for i in range(len(lst) - 1, -1, -1):
# curnode = ListNode(lst[i])
# curnode.next = pre
# pre = curnode
# return pre
# 数组变成链表:正序版
dummy = ListNode()
p = dummy
for _, v in enumerate(lst):
p.next = ListNode(int(v))
p = p.next
return dummy.next