Help me correct the implementation of revered linkedlist

Heres my code in Python 3 to create a linklist, append elements, display the linkedlist and reverse the linklist. Amoung above functions I am having trouble reversing linklist. Here is my code:

class node:
    def __init__(self, data=None):
        self.data=data
        self.next=None 
class Linkedlist:
    def __init__(self):
        self.head=node()
    def append(self, data):
        current_node=self.head
        new_node = node(data)
        while current_node.next!=None:
            current_node=current_node.next
        current_node.next=new_node
    def display(self):
        elems=[]
        current_node=self.head
        while current_node.next!=None:
            current_node=current_node.next
            elems.append(current_node.data)
        print(elems)

    def getnode(self, index):
        current_index=0
        current_node=self.head
        while True:
            current_node=current_node.next
            if current_index == index:
                return current_node.data
            current_index +=1

    def length(self):
        counter=0
        current_node=self.head
        while current_node.next!=None:
            current_node=current_node.next
            counter +=1
        return counter
        
    def reverselinklist(self):
        prev=None
        current_node=self.head 
        while current_node.next!=None:
            temp=current_node
            current_node=current_node.next
            temp.next=prev
            prev=temp
        return prev


my_list=Linkedlist()
my_list.display()
my_list.append(1)
my_list.append(2)
my_list.append(3)
my_list.append(4)
my_list.display()

I am following this algorithm but Im not sure what I am doing wrong. I want to reverse the linklist and display the reversed linklist using display() function. How can I do that ?

Comments (1)