func (k *Key) root() *Key {
	for k.parent != nil {
		k = k.parent
	}
	return k
}
func (k *Key) root() *Key {
	for k.parent != nil {
		k = k.parent
	}
	return k
}
// root returns the furthest ancestor of a key, which may be itself.