题解 | #反转链表#

反转链表

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

from re import template
# 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:
        # write code here
        if head is None:  # 先考虑特殊情况
            return head
        
        p = head  # 滑动指针,作用是遍历原链表
        new_h = None  # 保存翻转后的链表头,最终return此值,跟着p动态刷新

        while p is not None:
            temp = p.next # 先保存指针p下一跳, 防止直接修改后找不到原来的值
            # 翻转操作
            p.next = new_h # 紧接着,修改当前p指针的下一跳为翻转后链表头
            new_h= p # 紧接着,将当前指针p赋给翻转后的链表头。 
            # 翻转操作完成,这时原链表p1.ext为None,翻转后链表头new_h为p1
            p = temp # 更新链表指针

        return new_h




















        


全部评论

相关推荐

小浪_Coding:1. 个人技能排版太乱, 写的技术栈太浅了, 跟测试,自动化相关的太少; 2. 项目开发类的太简单没有亮点, 算法类的项目建议只放一个,最好有自动化,CI/CD, pipline的项目, 需要更换; 3.整体排版需要优化, SOOB打招呼都需要注意等.
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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