Leetcode刷题Python206.反转链表

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode刷题Python206.反转链表相关的知识,希望对你有一定的参考价值。

1 题目

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
示例 2:
输入:head = [1,2]
输出:[2,1]
示例 3:

输入:head = []
输出:[]

提示:

链表中节点的数目范围是 [0, 5000]
-5000 <= Node.val <= 5000
进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

2 Python代码

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    # 方案一:递归
    # def reverseList(self, head: ListNode) -> ListNode:
    #     if head ==None or head.next==None:
    #         return head
    #     curr = self.reverseList(head.next)
    #     head.next.next = head
    #     head.next = None
    #     return curr
    # 方案二:迭代
    def reverseList(self, head: ListNode) -> ListNode:
        prev,curr = None,head
        while curr:
            # 小心这一步,别忘了
            next = curr.next
            curr.next = prev
            prev = next
            curr = curr.next
        return prev

以上是关于Leetcode刷题Python206.反转链表的主要内容,如果未能解决你的问题,请参考以下文章

[JavaScript 刷题] 链表 - 反转链表, leetcode 206

Leetcode刷题100天—206. 反转链表(链表)—day01

Leetcode刷题100天—206. 反转链表(链表)—day01

LeetCode Java刷题笔记—206. 反转链表

LeetCode Java刷题笔记—206. 反转链表

Leetcode刷题笔记之链表篇206. 反转链表