核心思路:保存后点信息,把当前点指向前点,循环向右平移
时间复杂度:o(n)
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverse_list(head):
pre = None
cur = head
while cur:
nxt = cur.next
cur.next = pre
pre = cur
cur = nxt
return pre
def print_list(node):
while node:
print(node.val)
node = node.next
if __name__ == '__main__':
head = ListNode()
head.val = 1
sec = ListNode(2)
head.next = sec
head.next.next = ListNode(3)
last = ListNode(4)
last.next = head
head = last
res = reverse_list(head)
print_list(res)
1308

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



