Java time complexity of subset problem

The subset exercise from LeetCode:

Example: For Input nums = (1,2,3) Return Output:
    (
      (3),
      (1),
      (2),
      (1,2,3),
      (1,3),
      (2,3),
      (1,2),
      ()
    )

has as backtrack solution:

public List> subsets(int() nums) {
    List> list = new ArrayList<>();
    Arrays.sort(nums);
    backtrack(list, new ArrayList<>(), nums, 0);
    return list;
}

private void backtrack(List> list , List tempList, int () nums, int start){
    list.add(new ArrayList<>(tempList));
    for(int i = start; i < nums.length; i++){
        tempList.add(nums(i));
        backtrack(list, tempList, nums, i + 1);
        tempList.remove(tempList.size() - 1);
    }
}

The solution was hit here.
I would like to know how complex this solution is in terms of time and space. Apparently the temporal complexity O(N * 2^n), The N come from the tempList.add() Operation, I have a problem understanding where the 2^N I'm from.