Yes, all that copying needs to be accounted for.
Those copies are not necessary; it's easy to write functions which either:
- use a (singly) linked list instead of ArrayList, or
- use a single ArrayList, overwriting previous paths when they're not needed any more.
With non-copying algorithms, the cost of the algorithm is the cost of printing the paths, which is the sum of the lengths of all paths from the root to a leaf. Copy the array on every call, makes the cost become the sum of the paths from the root to every node, rather than every leaf. (The fact that the array is copied twice is really not relevant to complexity analysis; it just means multiplying by a constant factor, which can be ignored.)
With the non-copying algorithm, the best case is a linear tree, with only one child per node. Then there is just one leaf with a path length of N, so the total cost is O(N). But that's a worst-case input if you're copying at every node; the node path lengths are successive integers, and the sum of node path lengths is quadratic.
For your algorithm, the best case is a perfectly-balanced fully-occupied tree. In a fully-occupied tree, there is one more leaf than non-leaf nodes; in other words, approximately half the nodes are leaves. In a perfectly-balanced tree, every node can be reached from the root in a maximum of log N steps. So the sum of path lengths to every node is O(N log N). (Some nodes are closer, but for computing big O we can ignore that fact. Even if we were to take it into account, though, we'd find that it doesn't change the asymptotic behaviour because the number of nodes at each depth level doubles for each successive level.) Because half the nodes are leaves, the cost of this input is O(N log N) with the non-copying algorithm as well.
Both algorithms exhibit worst-case quadratic complexity. We've already seen the worst-case input for the copying algorithm: a linear tree with just one leaf. For the non-copying algorithm, we use something very similar: a tree consisting of a left-linked backbone, where every right link is a leaf:
root
/\
/ \
/\ 7
/ \
/\ 6
/ \
/\ 5
/ \
/\ 4
/ \
/\ 3
/ \
1 2
Since that tree is fully-occupied, half its nodes are leaves, and they are at successively increasing distances, so that is again quadratic (although the constant multiplier is smaller.)