I have a linked list in python that I am presently implementing. However the scenario of deleting the first node isnt working for me.
Deleting the node at any other point in the list works fine.
I have searched youtube tutorials and other online posts but it seems to have the exact same lines of code that I have.
I have also tried putting print statements in before the lines - self.head = HeadVal.nextval - HeadVal = None
From the output, it does seem to pass the headnode onto the second element of the list and clear the original first item, but when I print the list again the original first node hasnt been deleted. Its almost like the new list structure hasnt been committed to memory if that makes sense?
Deleting the node at any other point in the list works fine.
I have searched youtube tutorials and other online posts but it seems to have the exact same lines of code that I have.
I have also tried putting print statements in before the lines - self.head = HeadVal.nextval - HeadVal = None
From the output, it does seem to pass the headnode onto the second element of the list and clear the original first item, but when I print the list again the original first node hasnt been deleted. Its almost like the new list structure hasnt been committed to memory if that makes sense?
class Node: def init(self, dataval): self.dataval = dataval self.nextval = None class LinkedList: def init(self): self.headval = None def listprint(self): printval = self.headval while printval is not None: print (printval.dataval) printval = printval.nextval def removeNode(self): nodeToRemove = input("Enter Node To Remove: ") HeadVal = self.headval if (HeadVal is not None): if (HeadVal.dataval == nodeToRemove): self.head = HeadVal.nextval HeadVal = None return else: while (HeadVal is not None): if HeadVal.dataval == nodeToRemove: break prev = HeadVal HeadVal = HeadVal.nextval prev.nextval = HeadVal.nextval HeadVal = None else: print("Nothing To Delete") def MainMenu(): print("1. Create A Linked List") print("2. Delete A Linked List") print("3. Check If A Linked List Is Empty") print("4. Print Out The Values In The List") print("5. Find A Node In A Linked List") print("6. Insert A Node In A Linked List") print("7. Delete A Node In A Linked List") print("99. Exit") anotherOption = True while anotherOption == True: print("") selection=int(input("Main Menu --- Enter Choice: ")) if selection==1: myList = LinkedList() myList.init() print("Linked List Created") elif selection==6: print("") print("A. Insert A Node Into The Front Of The Linked List") print("B. Insert A Node Into The End Of The Linked List") print("") entrySelection=input("Enter Insert Node Choice: ") if entrySelection in ["A", "a"]: myList.insertAtBegining() elif entrySelection in ["B", "b"]: myList.insertAtEnd() else: print("") print("Enter A Valid Selection For Inserting Node") elif selection==4: myList.listprint() elif selection==7: myList.removeNode() elif selection==99: anotherOption = False print("") print("Exiting Main Menu") else: print("") print("Enter A Valid Selection On Main Menu") MainMenu()