题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head ListNode类
# @return ListNode类
#
class Solution:
def ReverseList(self , head: ListNode) -> ListNode:
# write code here
#if not head:
# return []
if head is None or head.next is None:
return head
p = None
while head:
temp = head.next
head.next = p
p = head
head = temp
return p
加入判断是否为ListNode的时候(以下语句),测试空链表的时候会出错。
if not head:
return []
题目要求时间O(n),故只能单循环;空间O(1),故不能出现数组/链表/栈,只能单变量。
这道题对head.next的变换比较难处理,题目变式多,容易混淆出错,可以跟多类同题型比较、区分。

