0%

Leetcode 206 反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

有递归和迭代两种解法,这里给出迭代解法。CS61A 中也有类似的题目,可以参考。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next

class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
if head is None:
return None
ans = 0
while head:
if ans == 0:
ans = ListNode(head.val)
else:
ans = ListNode(head.val, ans)
head = head.next
return ans