题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
from pickle import NEXT_BUFFER # class ListNode:, NONE # 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 head==None: return head # curr和pre都表示正序的情况 curr = head pre = None while(curr!=None): temp = curr.next curr.next = pre pre = curr curr = temp return pre
考虑三个节点1,2,3,本来1->2->3
现在想反转,2的next由3改为1,但是由于不能丢失3的信息,所以用temp记录3
temp = curr.next
将当前curr的next修改为上一个节点
curr.next = pre
更新pre和curr,为下一次修改做准备
pre = curr
curr = temp
对于第一个头节点,需要在循环外面定义pre和curr,curr=head,pre=None
#我的实习求职记录#实习算法题题解 文章被收录于专栏
实习算法题