就地反转法
开始新表头:newHead=None,切断head与head->next,记得保存temp = head->next,因为最后head节点处理完(与newHead连接),要跳到下一个节点(即该节点temp),而newHead与head连接完也跟head一样,需要后移一个节点(即原head节点)。
# def __init__(self, x):
# self.val = x
# self.next = None
#
# @param head ListNode类
# @return ListNode类
#
class Solution:
def ReverseList(self , head: ListNode) -> ListNode:
# 新表头
newHead = None
# 开始反转
while head:
# 记录head.next
temp = head.next
# head与newHead连接
head.next = newHead
# newHead后移一个节点
newHead = head
# head也要后移一个节点
head = temp
return newHead