## Description

https://leetcode.com/problems/reverse-linked-list/

Reverse a singly linked list.

**Example:**

Input:1->2->3->4->5->NULLOutput:5->4->3->2->1->NULL

**Follow up:**

A linked list can be reversed either iteratively or recursively. Could you implement both?

## Explanation

A palindrome, and its reverse, are identical to each other.

## Python Solution

```
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
prev = None
current = head
while current != None:
temp = current.next
current.next = prev
prev = current
current = temp
return prev
```

- Time complexity: O(N).
- Space complexity: O(1).

## One Thought to “LeetCode 206. Reverse Linked List”