Given the head of a singly linked list, reverse the list and return the new head.
Lists are written as arrays in the examples: [1, 2, 3] means 1 → 2 → 3, and [] is an empty list (a null head).
Examples
Example 1
- Input
- head = [1, 2, 3, 4, 5]
- Output
- [5, 4, 3, 2, 1]
Example 2
- Input
- head = [1, 2]
- Output
- [2, 1]
Example 3
- Input
- head = []
- Output
- []
Constraints
- The list has between
0and5000nodes. -5000 <= Node.val <= 5000