func (b *BinaryTree) WalkPreOrder() []Comparable {
	walked := make([]Comparable, 0, b.size)
	return walkPreOrder(b.root, walked)
}
Returns a pre order Comparable slice of the binary tree.
package binary
type BinaryTree struct {
	root *node
	size int
}
func New() *BinaryTree {
	return &BinaryTree{size: 0}
}
type node struct {
	parent *node
	left   *node
	right  *node
	value  Comparable
}
type Comparable interface {
	CompareTo(other Comparable) int
}
func walkInOrder(node *node, walked []Comparable) []Comparable {
	if node != nil {
		walked = walkInOrder(node.left, walked)
		walked = append(walked, node.value)
		walked = walkInOrder(node.right, walked)
		return walked
	}
	return nil
}
func (b *BinaryTree) Walk() []Comparable {
	walked := make([]Comparable, 0, b.size)
	return walkInOrder(b.root, walked)
}
func walkPreOrder(node *node, walked []Comparable) []Comparable {
	if node != nil {
		walked = append(walked, node.value)
		walked = walkPreOrder(node.left, walked)
		walked = walkPreOrder(node.right, walked)
		return walked
	}
	return nil
}