def solver(input): if input == None: return False # just swap the value of the current node with the value of the next node next = input.next input.value = next.value input.next = next.next return True if __name__ == "__main__": values = [1, 2, 3, 4, 5, 6, 7, 8, 9] ll = LinkedList() ll2 = LinkedList() for x in values: ll.addToTail(x) if x != 5: ll2.addToTail(x) curr = ll.head while curr.value != 5: curr = curr.next # now that we have 5, pass that value into the function solver(curr) ll.printList() ll2.printList()
p1 = p1.next p2 = p2.next # p2 should be at the end, but if the current value there has been seen, then we have to remove this node if p2.value not in seen: p1.next = None # return the new linked list return input if __name__ == "__main__": # Create unsorted Linked list l1 = LinkedList() toAdd = [5, 6, 5, 1, 2, 1, 2] for x in toAdd: l1.addToTail(x) # do the problem print("========== RESULT ==========") solver(l1) l1.printList() # Create unsorted Linked list print("========== ANSWER ==========") s1 = LinkedList() ans = [5, 6, 1, 2] for x in ans: s1.addToTail(x) s1.printList()