LeetCode:206. Reverse Linked List

题目描述

Reverse a singly linked list.

Example:

1
2
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL

用一个虚的头节点(如下的start节点)可以简化代码。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution:
def reverseList(self, head: 'ListNode') -> 'ListNode':
if head == None:
return head
start = ListNode(0)
start.next = head
tmp = head
last = start
while tmp != None:
nextTmp = tmp.next
tmp.next = last
last = tmp
tmp = nextTmp

head.next = None
return last