def mutateDeletion(ind):
    """Delete a random node in <ind>'s tree; replace it with a terminal node"""
    tree = ind.tree
    terminalOptions = tree.categoryLimits[tree.classToPredict]
    terminalReplacement = GPNode(tree.classToPredict, random.choice(terminalOptions))
    nodeToDelete, parentNode, left = getRandomNode(tree.root, random.randint(0, tree.maxDepth))
    if left:
        parentNode.setLeftChild(terminalReplacement)
        terminalReplacement.setLeftChild(None)
        terminalReplacement.setRightChild(None)
    else:
        parentNode.setRightChild(terminalReplacement)
        terminalReplacement.setLeftChild(None)
        terminalReplacement.setRightChild(None)