code: func (trie *Trie) DeleteSubtree(prefix Prefix) (deleted bool) {
  	// Nil prefix not allowed.
  	if prefix == nil {
  		panic(ErrNilPrefix)
  	}
  
  	// Empty trie must be handled explicitly.
  	if trie.prefix == nil {
  		return false
  	}
  
  	// Locate the relevant subtree.
  	parent, root, found, _ := trie.findSubtree(prefix)
  	if !found {
  		return false
  	}
  
  	// If we are in the root of the trie, reset the trie.
  	if parent == nil {
  		root.reset()
  		return true
  	}
  
  	// Otherwise remove the root node from its parent.
  	parent.children.remove(root.prefix[0])
  	return true
  }
docs: // DeleteSubtree finds the subtree exactly matching prefix and deletes it.
  //
  // True is returned if the subtree was found and deleted.