재귀에 대해 배우고 있습니다. 2 개의 정렬 된 목록을 병합하여 정렬 된 목록을 반환하려고 시도하고 있습니다. 나는 이것이 이미 부정확하다는 것을 알고 있지만 어떤 지침이 도움이 될 것입니다.2 개의 정렬 된 목록을 재귀 적으로 병합하여 병합 된 목록을 정렬하는 방법
public static ArrayList<Integer> mergeMyList(ArrayList<Integer> list1,
ArrayList<Integer> list2)
{
ArrayList<Integer> tempList = null;
int n = list1.size() +list2.size();
int l = list2.size();
if (n == 0 && l == 0)
{
tempList = list1;
return tempList;
}
if (n == 0)
{
tempList = list2;
return tempList;
}
if (l == 0)
{
tempList = list1;
return tempList;
}
else
{
int x = list1.get(0);
int y = list2.get(0);
if (x < y)
{
// list1.add(x);
// list1.add(y);
tempList=list1;
// list1.remove(0);
// list2.remove(0);
}
else
{
list1.add(y);
tempList = list1;
list1.remove(0);
list2.remove(0);
tempList = mergeMyList(list1,list2);
}
}
tempList = mergeMyList(list1,list2);
return tempList;
}
왜 당신은 이미 두 개의 정렬 된 목록이있는 경우 재귀를 사용 하시겠습니까? 그냥 반복하여 새로운 목록에 가장 큰 가치를 추가하십시오. – Enrique
그게 바로 내가 물었던 것입니다 - 나는 누군가를 도우려고 노력하지만, 나의 범위를 조금 넘어 둡니다. –
감사합니다. 엔리케를 덧붙여주세요. –