이것은 숙제를위한 것입니다. 숙제는 나무 구조에 재귀가 아닙니다. 나는 거의 과제를 마쳤지 만, 나무를 위로 옮기는 재귀 적 방법이 나 빠진다. 트리 구조는 아래의 클래스에 의해 주어진다 :for 루프 반환 문이 포함 된 재귀 메서드
package lab12;
import java.io.Serializable;
public class Dog implements Serializable{
public Dog[] children;
public String name;
public Dog(String name)
{
this.name = name;
}
@Override
public String toString()
{
return name;
}
}
나는 return null이 확실하다. 내 for 루프와 결합 된 문. for 루프는 자식을 포함하지 않고 결과로 null을 반환하는 노드를 반복합니다. 이 메서드를 끝내고 null 포인터 예외를 제공하는 내 프로그램에 null을 전달합니다.
return 문을 제거 할 수 없거나 for 루프를 사용하여 100 % 반환하더라도 컴파일되지 않습니다.
public Dog findParent(Dog root, String name)
{
String top = "Spot";
if(top.equals(name))
{
System.out.println("No further records");
System.out.println("Goodbye.");
System.exit(0);
}
for(int i = 0; root.children != null && i < root.children.length; i++)
{
if(root.children[i].name.equals(name))
{
return root;
}
else
{
return findParent(root.children[i], name);
}
}
return null; //Compiler still requires a return here.
}
비공 인 재귀 적 방법에서 for 루프를 사용할 때 공통적 인 문제라고 생각합니다. 컴파일러를 행복하게 만들 수있는 방법이 있습니까? 아직 Null 문을 반환하지 않았습니까?
게시 할 때 문제가 있는지 확인하십시오. StackOverflow는 코드를 디버깅하지 않습니다. –