《剑指Offer》反转链表 Python实现

一、题目描述

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

二、解题思路

把listNode中的next改为null可以,但是想把listnode=null就麻烦了。因为你自己定义的listnode=head的话,listnode=null时head并不是空。这个也是清理对象时的经验,只能把最原始的对象赋值为空,要不然原始对象指针会一直占用这个对象。

用temp保存pHead的下一个节点。用newHead保存新的节点的开头。然后把pHead.next只想newHead,再移动一下 三个指针即可。

三、实现代码

# -*- coding:utf-8 -*-
# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    def ReverseList(self, pHead):
        if not pHead or not pHead.next:
            return pHead

        newHead = None
        while pHead:
            temp = pHead.next
            pHead.next = newHead
            newHead = pHead
            pHead = temp
        return newHead

猜你喜欢

转载自blog.csdn.net/qq_32572085/article/details/88735489