func recursiveWalk(n *node, fn WalkFn) bool {
	// Visit the leaf values if any
	if n.leaf != nil && fn(n.leaf.key, n.leaf.val) {
		return true
	}

	// Recurse on the children
	for _, e := range n.edges {
		if recursiveWalk(e.node, fn) {
			return true
		}
	}
	return false
}
func recursiveWalk(n *node, fn WalkFn) bool {
	
	if n.leaf != nil && fn(n.leaf.key, n.leaf.val) {
		return true
	}

	
	for _, e := range n.edges {
		if recursiveWalk(e.node, fn) {
			return true
		}
	}
	return false
}
func recursiveWalk ( n * node , fn WalkFn ) bool { // Visit the leaf values if any if n . leaf != nil && fn ( n . leaf . key , n . leaf . val ) { return true } // Recurse on the children for _ , e := range n . edges { if recursiveWalk ( e . node , fn ) { return true } } return false }
// recursiveWalk is used to do a pre-order walk of a node
// recursively. Returns true if the walk should be aborted
recursiveWalk is used to do a pre - order walk of a node recursively . Returns true if the walk should be aborted