面试题24:反转链表

作者: 不会编程的程序猿甲 | 来源:发表于2020-03-09 13:18 被阅读0次

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

    解题思路:
    这道题注意思考三个问题:输入的链表头指针是空或者输入的链表只有一个节点;反转后的链表出现断裂怎么办;如何保证返回的是反转后的头节点。具体的思路如下:

    24 反转链表.png

    代码实现:

    # -*- 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
            pre = None
            current = pHead
            reverseHead = None
            while current != None:
                pnext = current.next    #当current不为空时,才有下一节点
                if pnext == None:
                    reverseHead = current  #如果下一节点为空,当前尾节点
                current.next = pre
                
                #变量更新
                pre = current 
                current = pnext
            return reverseHead
    

    提交结果:

    牛客网提交结果.png

    相关文章

      网友评论

        本文标题:面试题24:反转链表

        本文链接:https://www.haomeiwen.com/subject/yhtpdhtx.html