prepare none recursion pre-order traverse