题目
【leetcode】206.反转链表1
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
解法
三个指针
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
if not head or not head.next:
return head
p = None
q = head
t = q.next
while t:
q.next = p
p = q
q = t
t = t.next
q.next = p
return q
递归
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
if not head or not head.next:
return head
new_head = self.reverseList(head.next) # 返回反转后的头结点
head.next.next = head
head.next = None
return new_head