题解 | #反转链表#
反转链表
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
#我的实习求职记录#实习算法题题解 文章被收录于专栏
实习算法题
曼迪匹艾公司福利 137人发布
