剑指offer--反转链表

mac2025-10-21  7

剑指offer–反转链表

一、前言

最近开始刷剑指offer,记录一下。牛客网在线编程板块的剑指offer专区。 牛客网剑指offer:传送门 或者点击下方链接。 https://www.nowcoder.com/ta/coding-interviews

二、题目描述

输入一个链表,反转链表后,输出新链表的表头。

三、代码

# -*- coding:utf-8 -*- # -*- coding:utf-8 -*- class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: # 返回ListNode def ReverseList(self, pHead): # write code here # 1、将现有的头换成尾,尾部的next为空 # 2、将从第二个node开始,循环将next指向前一个 # 3、需要一直有一个指针指向还没有翻转的链表的头部 if pHead==None: return None if pHead.next==None: return pHead leftPoint = pHead midPoint = pHead.next # rightPoint = pHead.next.next rightPoint = midPoint.next leftPoint.next = None while rightPoint != None: midPoint.next=leftPoint leftPoint=midPoint midPoint=rightPoint rightPoint=rightPoint.next midPoint.next = leftPoint return midPoint if __name__ == '__main__': s=Solution() l1 = ListNode(1) l2 = ListNode(2) l3 = ListNode(3) l4 = ListNode(4) l5 = ListNode(5) l1.next = l2 l2.next = l3 l3.next = l4 l4.next = l5 l5.next = None print(s.ReverseList(l1))

最新回复(0)