m2skills

delete node pointer python

Jan 28th, 2018
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.11 KB | None | 0 0
  1. class LinkedList:
  2.     def __init__(self):
  3.         self.head = None
  4.  
  5.     # method adds elements to the left of the Linked List
  6.     def addToStart(self, data):
  7.         # create a temporary node
  8.         tempNode = Node(data)
  9.         tempNode.setLink(self.head)
  10.         self.head = tempNode
  11.         del tempNode
  12.  
  13.     # method adds elements to the right of the Linked List
  14.     def addToEnd(self, data):
  15.         start = self.head
  16.         tempNode = Node(data)
  17.         while start.getNextNode():
  18.             start = start.getNextNode()
  19.         start.setLink(tempNode)
  20.         del tempNode
  21.         return True
  22.  
  23.     # method displays Linked List
  24.     def display(self):
  25.         start = self.head
  26.         if start is None:
  27.             print("Empty List!!!")
  28.             return False
  29.  
  30.         while start:
  31.             print(str(start.getData()), end=" ")
  32.             start = start.link
  33.             if start:
  34.                 print("-->", end=" ")
  35.         print()
  36.  
  37.     # deleting node with only that node pointer
  38.     def deleteNode(self, nodePtr):
  39.         if nodePtr is None:
  40.             return
  41.         else:
  42.             # make a pointer to next node
  43.             nextNode = nodePtr.getNextNode()
  44.  
  45.         # copy deteils of next node to current node
  46.         nodePtr.updateData(nextNode.getData())
  47.         nodePtr.setLink(nextNode.getNextNode())
  48.  
  49.         # set nextNode to None
  50.         nextNode = None
  51.  
  52.  
  53. # node class
  54. class Node:
  55.     # default value of data and link is none if no data is passed
  56.     def __init__(self, data=None, link=None):
  57.         self.data = data
  58.         self.link = link
  59.  
  60.     # method to update the data field of Node
  61.     def updateData(self, data):
  62.         self.data = data
  63.  
  64.     # method to set Link field the Node
  65.     def setLink(self, node):
  66.         self.link = node
  67.  
  68.     # method returns data field of the Node
  69.     def getData(self):
  70.         return self.data
  71.  
  72.     # method returns address of the next Node
  73.     def getNextNode(self):
  74.         return self.link
  75.  
  76.        
  77. # main method
  78. # creating LinkedList
  79. myList = LinkedList()
  80. myList.addToStart(1)
  81. myList.addToEnd(2)
  82. myList.addToEnd(3)
  83. myList.addToEnd(4)
  84. myList.addToEnd(5)
  85. myList.addToEnd(6)
  86. myList.addToEnd(7)
  87. myList.addToEnd(8)
  88. myList.addToEnd(9)
  89. myList.addToEnd(10)
  90. myList.addToEnd(11)
  91. myList.display()
  92.  
  93. print("\nDeleting the third node from the Linked List")
  94. myList.deleteNode(myList.head.getNextNode().getNextNode())
  95. myList.display()
Add Comment
Please, Sign In to add comment