实现反转链表

🟢 简单

题目描述

反转一个单链表。

参考答案

type ListNode struct {
    Val  int
    Next *ListNode
}

func ReverseList(head *ListNode) *ListNode {
    var prev *ListNode
    curr := head
    
    for curr != nil {
        next := curr.Next
        curr.Next = prev
        prev = curr
        curr = next
    }
    
    return prev
}

复杂度分析

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)