--- tags: data_structure_python --- # Reverse Linked List <img src="https://img.shields.io/badge/-easy-brightgreen"> Reverse a singly linked list. **Example:** ``` Input: 1->2->3->4->5->NULL Output: 5->4->3->2->1->NULL ``` **Follow up:** A linked list can be reversed either iteratively or recursively. Could you implement both? # Solution ### Solution 1: Iterative ```python= # 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 curr = head while curr != None: tmp = curr.next curr.next = prev prev = curr curr = tmp return prev ``` ### Solution 2: Recursive ```python= # 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: if head == None or head.next == None: return head else: curr = self.reverseList(head.next) head.next.next = head head.next = None return curr ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up