题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

class Solution:

    def ReverseList(self , head: ListNode) -> ListNode:

        #处理空链表

        if not head:

            return None #空链表不需要反转,返回空 None

            #链表的每一个元素都存储了下一个元素的地址

        cur = head #定义一个当前元素指向下一个元素的地址

        pre = None #定义一个上一个元素指向它的下一个元素的地址(初始为空)

        while cur:   #遍历整个链表,每到一个元素,断开当前元素指向下一个元素的地址,并用临时变量记录指向下一个元素的地址,然后当前元素带有的指向下一个元素的地址,改为指向上一个元素的地址,即可以将指针逆向

            #断开链表,要记录当前元素指向的下一个元素,用来指向它的下一个元素的地址,临时变量记录该地址:

            temp = cur.next 

            #上一个元素本来指向当前元素的地址 赋给 当前元素指向的下一个元素,用来指向它的下一个元素的地址:

            cur.next = pre

            #当前元素指向下一个元素的地址 赋给 上一个元素本来指向当前元素的地址

            pre = cur 

            #当前元素指向下一个元素的地址 更新为 当前元素指向的下一个元素,用来指向它的下一个元素的地址:

            cur = temp

        return pre  #更新

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
牛客533433175号:更可气的是我做完这些给我拒了
点赞 评论 收藏
分享
10-28 14:42
门头沟学院 Java
watermelon1124:因为嵌入式炸了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:21
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务