/
reverseList.py
46 lines (35 loc) · 1020 Bytes
/
reverseList.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# -*- coding:utf-8 -*-
"""
输入一个链表,反转链表后,输出新链表的表头。
"""
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
"""
用多个指针分别记录当前节点,以及它的前驱和后继。
"""
# write code here
if pHead is None:
return None
else:
if pHead.next:
pre = None
pNode = pHead
pNext = pNode.next
pNode.next = pre
else: # 链表只含有一个节点
return pHead
while pNext:
if pNext.next:
pNextNext = pNext.next
pre = pNode
pNode = pNext
pNext = pNextNext
pNode.next = pre
else: # pNext即是尾节点
pNext.next = pNode
return pNext