输入一个长度为n链表,反转链表后,输出新链表的表头。
数据范围: n≤1000
要求:空间复杂度 O(1) ,时间复杂度 O(n)。
如当输入链表{1,2,3}时,
经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。
以上转换过程如下图所示:
示例1
输入:
{1,2,3}
返回值:
{3,2,1}
示例2
输入:
{}
返回值:
{}
说明:
空链表则输出空
# -*- 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 pre = None cur = pHead if pHead == None: return pHead while cur != None: tmp = cur.next cur.next = pre pre = cur cur = tmp return pre # 递归版 # if not pHead: return None # if not pHead.next: return pHead # headNode = self.ReverseList(pHead.next) # pHead.next.next= pHead # pHead.next = None # return headNode