题解 | #反转链表#

反转链表

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  #更新

全部评论

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务