Pyhton反转链表,时间复杂度打败99%的人 - 来自tensor大神的超简单思路
反转链表
http://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca
Pyhton反转链表,时间复杂度打败99%的人 - 来自tensor大神的超简单思路
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None import copy class Solution: # 返回ListNode def ReverseList(self, pHead): # write code here if pHead == None: # 判断是否为空,为空直接返回空 return None res = ListNode(0) # 随意给个初始化val值,这里给的0 while pHead.next != None: # 判断当前pHead是否为尾节点 res.val = pHead.val res.next = copy.copy(res) # 这里一定要用浅复制copy,不然会无限循环 pHead = pHead.next # res.val = pHead.val # 最后要补一次赋值,一定要区分数组的索引循环和这题元素循环的细节区别,数组最后一次在循环里使用的索引是len(array)-1,数组最后一个元素已经在循环中参与计算,而这题是元素循环,最后一次在循环里使用的元素是第len(pHead)-1个元素,最后一个元素并没有参与循环内部计算。所以需要再赋值一次。 return res