题解 | #反转链表#

反转链表

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

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @return ListNode类
#
class Solution:
    def ReverseList(self , head: ListNode) -> ListNode:
        if head is None:
            return head
        per = None
        cur = head
        while cur:
            next = cur.next
            cur.next = per
            per = cur 
            cur = next
        return per

首先我们先判断head节点是否为空,为空则直接返回head节点

链表若不为空值,我们定义一个per指向当前节点的上一个节点,cur指向现在的节点。

若当前节点存在,我们先保存当前节点的下一个节点,将当前指针的下一个节点改为指向它的前置节点,之后移动前置节点和当前节点的指针位置。

当cur节点为空时,结束循环,返回整个链表

#刷题心得#
全部评论

相关推荐

努力的小明a:项目看着很眼熟,施磊老师吧,我也学的这个😋我当时是把rpc框架做成了一个分布式网盘,这是一个项目,然后muduo库做成集群即时通讯,又用QT做了个交互的客户端,这样又一个项目,然后一个轻量redis,一个CAD,总共四个项目,投了三个月就今天2月份一个小厂Qt offer,然后后面想开了,Qt啥的都能干,这个月get了个北京大厂的offer,做java后端,人生就是这么魔幻,现在就在去北京入职的路上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务