Reverse Linked List (Leetcode #206)
I am a beginner coder who wants to keep track of my coding progress. I will post my LeetCode solutions here. Please feel free to give me advice or suggestions on my code.
Also, in the future, I will be posing my data science-related project here as well
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
Answer
This is our first question which involves a linked list.
A linked list is a data structure commonly found in data science consisting of a sequence of elements (Node) each referring to the next element (Node). And unlike arrays linked lists do not require contiguous memory location.
1) Node which is the basic building block of a linked list
2) Linked List which is a collection of Node
In this question, we are given a link list and we are tasked with reversing the order. This is a very common interview question which demonstrates the basic understanding of the linked list.

class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
p = None
c = head
while c:
temp = c.next
c.next = p
p = c
c = temp
return p
We loop through the list with the following steps:
Store the Next Node:
temptemporarily stores the next node (c.next) to avoid losing it when we change the pointer of the current node.Reverse the Current Node's Pointer: Point the
nextpointer of the current node (c) to the previous node (p). This reverses the direction of the link for the current node.Move Pointers Forward:
Move
pto the current node (c). This makesppoint to the new head of the partially reversed list.Move
cto the next node (temp). This advancescto the next node in the original list.
We repeat these steps until we reach the end of the list (c becomes None).
Time Complexity
Since we loop through the list once, the time complexity is O(N), where N is the number of nodes in the list.
Space Complexity
The space complexity is O(1) since we only use a few pointers and do not require any additional space proportional to the input size.