题解 | #反转链表#
反转链表
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的变换比较难处理,题目变式多,容易混淆出错,可以跟多类同题型比较、区分。