[剑指Offer] 24_反转链表

版权声明:Tian Run https://blog.csdn.net/u013908099/article/details/86169716

题目

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

例:

输入:1->2->3->4->5->None
输出:5->4->3->2->1->None


思路

  1. 双指针遍历链表,将当前节点的next设为前一个节点。注意保存当前节点的next来遍历。
    1. 时间复杂度:O(n)
    2. 空间复杂度:O(1)

代码

def reverse_list(head):
    """
    :param head: head
    :return: new head
    """
    node = head
    pre = None
    while node:
        node.next, pre, node = pre, node, node.next
    return pre

思考

同一题。

LeetCode 206. 反转链表

猜你喜欢

转载自blog.csdn.net/u013908099/article/details/86169716