在LeetCode上,反轉鏈表的常見解題方法有以下幾種:
1. 迭代法:使用三個指針,分別指向當前節點、前一個節點和下一個節點,通過更新指針來實現反轉。
def reverseList(head):
prev, curr = None, head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
2. 遞歸法:遞歸地反轉鏈表的剩余部分,然后將當前節點接在已反轉部分的后面。
def reverseList(head):
if not head or not head.next:
return head
p = reverseList(head.next)
head.next.next = head
head.next = None
return p