# 206. 反转链表

## Link

{% embed url="<https://leetcode.cn/problems/reverse-linked-list/>" %}

## Problem

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

示例 1：

{% code overflow="wrap" %}

```
输入：head = [1,2,3,4,5]
输出：[5,4,3,2,1]
```

{% endcode %}

示例2：

{% code overflow="wrap" %}

```
输入：head = [1,2]
输出：[2,1]
```

{% endcode %}

示例3:

{% code overflow="wrap" %}

```
输入：head = []
输出：[]
```

{% endcode %}

提示：

* 链表中节点的数目范围是 `[0, 5000]`
* `-5000 <= Node.val <= 5000`

## Solution

{% tabs %}
{% tab title="Go" %}

```go
func reverseList(head *ListNode) *ListNode {
    cur := head
    var pre, next *ListNode

    for cur != nil {
        next = cur.Next
        cur.Next = pre 
        pre = cur 
        cur = next
    }
    return pre
}
```

{% endtab %}

{% tab title="C++" %}

```cpp
```

{% endtab %}
{% endtabs %}
