题解 | #反转链表#

反转链表

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节点为空时,结束循环,返回整个链表

#刷题心得#
全部评论

相关推荐

10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务