나는 한동안 클래스를 위해 Java 프로젝트에서 일하고 있습니다. 이것은 연결 목록 (여기서는라고하며라는 AddressList
단순 노드를 포함 함 ListNode
) 의 구현입니다 . 문제는 모든 것이 재귀 알고리즘으로 이루어져야한다는 것입니다. 나는 한 가지 방법으로 모든 것을 잘 할 수 있었다.public AddressList reverse()
ListNode :
public class ListNode{
public String data;
public ListNode next;
}
지금 내 reverse
함수는 재귀를 허용하기 위해 인수를 취하는 도우미 함수를 호출합니다.
public AddressList reverse(){
return new AddressList(this.reverse(this.head));
}
내 도우미 기능에 private ListNode reverse(ListNode current)
.
현재 스택을 사용하여 반복적으로 작동하지만 사양이 요구하는 것은 아닙니다. 나는 C에서 재귀 적으로 뒤집어서 자바 코드로 직접 변환 한 알고리즘을 찾았지만 작동했지만 이해하지 못했다.
편집 : 신경 쓰지 마세요, 그동안 알아 냈어요.
private AddressList reverse(ListNode current, AddressList reversedList){
if(current == null)
return reversedList;
reversedList.addToFront(current.getData());
return this.reverse(current.getNext(), reversedList);
}
내가 여기있는 동안이 경로에 문제가있는 사람이 있습니까?