Title: delete list node in O (1) time to the order to the head pointer list and a pointer to a node.
delete_list_node DEF (the root, RP): # junction point where only one IF the root == RP: the root = root.next del RP return the root # deleted is the last node where IF rp.next == None: Q = the root ! = q.next the while RP: Q = q.next q.next = None del RP return the root the else: Q = rp.next rp.data = q.data rp.next = q.next del Q return the root
Note:
Case 1: Remove the head node is directly returned head.next. (This case the list contains only a head node)
Case 2: delete the last node of the list, you need to traverse the list to get the precursor node to remove the node, then the node pointer to None, delete nodes
Case 3: Remove the intermediate node, replicate the successor node value of a node to the current node, then let pointer to a subsequent successor