""" insert.py insert a new value into a linked list """ class Node: """ one node in a linked list """ def __init__(self, value): self.value = value self.next = None def print_list(linkedlist): """ print this node's value and the rest of the list """ if linkedlist == None: print() else: print(" " + str(linkedlist.value), end="") print_list(linkedlist.next) def make_test_list(): """ return a sample list for us to test """ # 5 -> 7 -> 10 five = Node(5) seven = Node(7) ten = Node(10) five.next = seven seven.next = ten return five def find_node(node, value): """ return the node with value """ while node: if node.value == value: return node else: node = node.next return None def insert_after(linkedlist, value, new_value): """ insert new_value after value in the linkedlist """ # First find the node with value node = find_node(linkedlist, value) new_node = Node(new_value) new_node.next = node.next node.next = new_node def main(): print("test insert") linkedlist = make_test_list() # this is the first node print_list(linkedlist) print("insert 13 after 7") insert_after(linkedlist, 7, 13) print_list(linkedlist) if __name__ == '__main__': main()