왼쪽에서 오른쪽으로 이진 트리가 아닌 모든 트리를 인쇄하려고합니다.자바의 트리에있는 모든 노드를 재귀 적으로 인쇄하십시오.
public class Tree
{
Node root;
public Tree(String rootData)
{
root = new Node();
root.data = rootData;
root.children = new ArrayList<Node>();
}
public static class Node
{
private String data;
private Node parent;
private List<Node> children;
public Node(){}
public Node(String newNodeData, Node newNodeParent)
{
data = newNodeData;
parent = newNodeParent;
}
}
public void print(Node curNode)
{
int index = 0;
while(curNode.children.get(index) != null)
{
print(curNode.children.get(index));
System.out.println(curNode.children.get(index).data);
}
}
는 그것은 print(curNode.childred.get(index));
라인에서 널 포인터 예외가 발생 내가 아주 이유를 이해 해달라고 : 나는 다음과 같은 트리 클래스와 메서드를 가지고있다. print
이 처음 호출되면 트리의 루트 노드가 전달됩니다. 인쇄 방법을 간소화하고 있습니까? 아니면 일반적으로 더 좋은 방법이 있습니까? 온라인에서 찾은 모든 것은 이진 검색 트리를위한 것이었고이 방법을이 방법에 적용하는 방법을 알지 못했습니다.
또한 반복적으로이 작업을 수행 할 수 있지만 어디서부터 시작해야할지 모르겠다. 재귀 적으로 복잡한 작업을 수행한다는 것을 알고있다. 아니면 내가 잘못 말하면 알려주세요.
오류 출력의 전체 추적은 유용 할 것입니다. – CodeGuy
뭔가가 'null'이기 때문에 NPE가 표시됩니다. 디버거를 사용하여 어떤 것이 있는지 파악해야합니다. –