面试题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

相关文章

  • 反转链表

    《剑指offer》面试题24:输入一个链表,反转链表后,输出新链表的表头。 思路:反转链表就是将链表中每一个节点的...

  • 剑指offer第二版-24.反转链表

    本系列导航:剑指offer(第二版)java实现导航帖 面试题24:反转链表 题目要求:如题 解题思路:想要链表反...

  • 数据结构之 swift 实现链表反转

    链表反转很熟悉的面试题,关于链表的基础知识就不再累赘了,如何swift实现链表的反转。 传入链表的头结点 返回一个...

  • 链表的反转

    反转链表是一道很基本的面试题,通过更改节点之间的链接来反转链表。 1.单链表的反转 题目 示例 用一幅图来解释:这...

  • 1.数据结构-链表问题

    链表相关问题 删除节点 链表去重 有环链表 反转链表 链表排序 链表相交 其他问题 面试题 02.03. 删除中间...

  • 面试题24:反转链表

    题目描述: 输入一个链表,反转链表后,输出新链表的表头。 解题思路: 为防止链表出现断裂的情况,需要定义3个指针,...

  • 面试题24:反转链表

    输入一个链表的头结点,反转链表后,并返回反转链表的头结点。 为了避免断裂现象的发生,应该设置三个节点指针去检查。即...

  • 面试题24: 反转链表

    开始在leetcode上做题了, 这样不用自己编写测试代码了, 而且测试更全面, 方便哟 递归法

  • 面试题24:反转链表

    题目:输入一个链表,反转链表后,输出新链表的表头。 解题思路:这道题注意思考三个问题:输入的链表头指针是空或者输入...

  • 面试题24:反转链表

    题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。思路:定义三个参数,pre、node...

网友评论

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

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