def reverseList(self, head: ListNode) -> ListNode:
while (current and current.next):
next = current.next
current.next = next.next

• This is a real basic problem, but it can be tricky. You should have it down cold for any interviews.

• Do more of these basic problems series.

• The real key here is memory management, how many pointers do you need to do the task?

• Also do it iteratively (faulty solution to improve on)

def reverseHelper(self, head):
before = self.reverseHelper(next)
print("before", before)
# who returns what?
def reverseList(self, head: ListNode) -> ListNode: