方法比较简单,使用三个指针即可
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
if head == None:
return
result = [None]
self.reverseLink(head, result).next = None
return result[0]
def reverseLink(self, head, result):
# 递归写法
if head.next != None:
self.reverseLink(head.next, result).next = head
else:
result[0] = head
return head
#迭代写法
# pre = None
# cur = head
# while cur:
# temp = cur.next
# cur.next = pre
# pre = cur
# cur = temp
# return pre
返回要返回pre,因为最后pre就是cur。
使用递归时要注意,每个函数不能在分支里写return,要都有return才行。
1086

被折叠的 条评论
为什么被折叠?



