LList Reverse(py)

Run Settings
LanguagePython
Language Version
Run Command
class Node: def __init__(self, data): self.data = data self.next = None def setNextNode(self,node): self.next = node def getData(self): return(self.data) def getNextNode(self): return(self.next) def setData(self,data): self.data = data class LinkedList: def __init__(self,head=None): self.head = head self.size = 0 def append(self,data): node = Node(data) if(self.size==0): self.head = node node.next = None self.size+=1 else: x=self.head while x: if(x.next == None): x.setNextNode(node) node.next = None x = x.next self.size+=1 return True def insert(self,data,place): node = Node(data) if(place>=self.size): self.append(data) else: x = self.head for i in range(1,place-1): x = x.getNextNode() y = x.getNextNode() x.setNextNode(node) node.next = y def printList(self): arr = [] x = self.head while x: arr.append(x.data) #print(x.getData()) x = x.getNextNode() print(arr) def prepend(self,data): node = Node(data) node.next = self.head self.head = node self.size+=1 return True def remove(self,index): curr = self.head if(index==0): x = curr.next self.head = x curr.next = None else: for i in range(index-1): curr = curr.next x = curr.next curr.next = x.next self.size-=1 self.printList() def reverse(self): if(self.size==1): print(self.head) else: prev = None curr = self.head while(curr != None): next = curr.next curr.next = prev prev = curr curr = next self.head = prev return True if __name__ == '__main__': print("hello!") llist = LinkedList() llist.append(5) llist.append(10) llist.append(15) llist.append(20) #llist.insert(100,3) #llist.insert(200,6) #llist.printList() #llist.prepend(0) #llist.insert(300,20) #llist.printList() #llist.remove(7) llist.reverse() llist.printList()
Editor Settings
Theme
Key bindings
Full width
Lines