If you are using an additional array of size n
then your space requirements are at least O(n)
irrespective whether you store just references or copies of the objects to the new array.
Also, if you use recursion for the traversal then you are using O(log n)
for the stack.