## @lc app=leetcode id=206 lang=python3## [206] Reverse Linked List## https://leetcode.com/problems/reverse-linked-list/description/## algorithms# Easy (73.66%)# Likes: 19643# Dislikes: 357# Total Accepted: 3.4M# Total Submissions: 4.6M# Testcase Example: '[1,2,3,4,5]'## Given the head of a singly linked list, reverse the list, and return the# reversed list.### 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 number of nodes in the list is the range [0, 5000].# -5000 <= Node.val <= 5000#### Follow up: A linked list can be reversed either iteratively or recursively.# Could you implement both?### @lc code=start# Definition for singly-linked list.fromtypingimportOptionalclassListNode:def__init__(self,val=0,next=None):self.val=valself.next=nextclassSolution:defreverseList(self,head:Optional[ListNode])->Optional[ListNode]:pre=Nonecur=headwhilecur:tmp=curcur=cur.nexttmp.next=prepre=tmpreturnpre# @lc code=end