image.png
这个题是面试中的常考题,在作业帮的面试中也遇到了,面试官要求手写代码。
首先要记住的是:要有三个指针, 分别是prev,cur,temp。
prev指针来记录前一个节点,cur是当前的指针,temp中存储的是当前节点的下一个节点,然后将cur中的next指向prev,然后cur和prev前进一步。直到尾端。
一个要点:如果当前是空链表,则返回空链表。所以将prev初始化为none,最后也返回prev
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
prev = None
cur = pHead
while cur:
temp = cur.next
cur.next = prev
prev = cur
cur = temp
return prev