Recursion to Iteration- refactoring
<p>I wrote this code but now I want to refactor it in order not to use recursion. But I can't wrap my head around it? Any ideas guys?</p>

<pre><code>    public List&lt;ServiceDTO&gt; findCustomerServices(String customerId) {
  List&lt;Service&gt; serviceTree = contractService.findCustomerServices(customerId);
  List&lt;ServiceDTO&gt; serviceDTOs = new ArrayList&lt;ServiceDTO&gt;();
  cloneTree(serviceTree, serviceDTOs);
  return serviceDTOs;
}

private void cloneTree(List&lt;Service&gt; services, List&lt;ServiceDTO&gt; clonedServices) {
  for (Service service : services) {
    ServiceDTO serviceDTO = new ServiceDTO();
    serviceDTO.setServiceId(service.getServiceId());
    serviceDTO.setCfServiceInstanceId(service.getCfServiceInstanceId());
    serviceDTO.setEndDate(service.getEndDate());
    serviceDTO.setStartDate(service.getStartDate());
    serviceDTO.setPhoneNumber(service.getPhoneNumber());
    serviceDTO.setIsPrimary(service.getIsPrimary());
    serviceDTO.setDesignationNumber(service.getDesignationNumber());
    serviceDTO.setServiceIdentifier(service.getServiceIdentifier());
    serviceDTO.setEndDateDay(service.getEndDateDay());
    serviceDTO.setEndDateMonth(service.getEndDateMonth());
    serviceDTO.setEndDateYear(service.getEndDateYear());
    clonedServices.add(serviceDTO);
    if (service.getDependentServices() != null &amp;&amp; !service.getDependentServices().isEmpty()) {
      cloneTree(service.getDependentServices(), serviceDTO.getDependentServices());
    }
  }
}
</code></pre>