func New(revisitElements ...bool) (walker *Walker) {
	walker = &Walker{
		stack: list.New(),
	}
	if len(revisitElements) == 0 || !revisitElements[0] {
		walker.seenElements = set.New()
	}
	return
}
New is the constructor of the Walker. It accepts an optional boolean flag that controls whether the Walker will visit
the same Element multiple times.
package walker
import (
	"container/list"
	"github.com/iotaledger/hive.go/datastructure/set"
)
type Walker struct {
	stack        *list.List
	seenElements set.Set
	walkStopped  bool
}