剑指offer面试题【24】----反转链表【单链表】

题目描述

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

思路

为了防止链表断开,使用三个指针进行操作,分别指向当前节点、它的前一个节点、后一个节点

代码实现

# -*- 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
        if pHead==None or pHead.next==None:
            return pHead
        
        pPeversedHead=None
        pNode=pHead
        pPrev=None
        while pNode!=None:
            pNext=pNode.next
            if pNext==None:
                pPeversedHead=pNode
            pNode.next=pPrev
            pPrev=pNode
            pNode=pNext
        return pPeversedHead

猜你喜欢

转载自blog.csdn.net/weixin_42702666/article/details/89843676