24反转链表

作者: gantrol | 来源:发表于2019-01-17 14:19 被阅读0次

定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。

class LinkNode(object):
    def __init__(self, val, nxt):
        self.value = val
        self.next = nxt

class Solution(object):
    def ReverseList(self, pHead):
        if not pHead or not pHead.next:
            return pHead

        probe = pHead
        pPrev = None
        while probe:
            pNext, probe.next, pPrev = probe.next, pPrev, probe
            # pNext = probe.next
            # probe.next = pPrev
            # pPrev = probe
            probe = pNext
        return pPrev

if __name__ == '__main__':
    a = LinkNode(1, None)
    b = LinkNode(2, a)
    c = LinkNode(3, b)
    
    d = LinkNode(0, None)
    e = LinkNode(5, d)
    answer = Solution()
    
    assert answer.ReverseList(None) is None
    assert answer.ReverseList(a).value == a.value
    rev_c = answer.ReverseList(c)
    assert rev_c.value == a.value
    while rev_c.next:
        rev_c = rev_c.next
    assert rev_c.value == c.value
    assert answer.ReverseList(e).value == 0

相关文章

  • 反转链表

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

  • Leetcode(链表题解)

    Leetcode_206 反转链表 Leetcode_203 删除链表中指定的元素 Leetcode_24 链表元...

  • [刷题防痴呆]有没有人一起从零开始刷力扣5 - 链表篇

    5 链表 题目分类题目编号链表的删除203、237、19链表的遍历430链表的旋转与反转61、24、206、92、...

  • 24、反转链表

    输入一个链表,反转链表后,输出新链表的表头。 题目链接:https://www.nowcoder.com/ques...

  • 24反转链表

    定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。

  • Algorithm小白入门 -- 单链表

    单链表递归反转链表k个一组反转链表回文链表 1. 递归反转链表 单链表节点的结构如下: 1.1 递归反转整个单链表...

  • 链表反转

    循环反转链表 递归反转链表

  • leetcode面试top(3链表)

    24. 反转链表[https://leetcode-cn.com/problems/fan-zhuan-lian-...

  • 5个链表的常见操作

    链表 链表反转 LeetCode206:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 环路检...

  • JZ-015-反转链表

    反转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。题目链接: 反转链表[https://www.no...

网友评论

    本文标题:24反转链表

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