그래서 BST에 노드를 삽입하거나 추가하려고 시도해 본 적이 있습니다. 나는 계속 받고있다. 스레드 "main"의 예외 java.lang.StackOverflowError 내가 재귀에 의한 것으로 가정하고 있지만, 여기서 어디로 가야하는지 정확히 알지 못한다. 누군가가 도움을 줄 수 있다면 어떤 방향으로 향할 것이다. 그것. :)Java에서 comparable을 사용하여 반복적으로 BST에 노드 추가
public void add(Type obj) {
TreeNode<Type> newNode = new TreeNode<Type>(obj);
if (root == null) {
root = newNode;
} else {
addNode(root, newNode);
}
}
private void addNode(TreeNode<Type> current, TreeNode<Type> newNode) {
current = root;
if (current == null) {
current = newNode;
} else if (newNode.getValue().compareTo(current.getValue()) < 0) {
if (current.getLeft() == null) {
current.setLeft(newNode);
} else {
addNode(current.getLeft(), newNode);
}
} else if (newNode.getValue().compareTo(current.getValue()) > 0) {
if (current.getRight() == null) {
current.setRight(newNode);
} else {
addNode(current.getRight(), newNode);
}
}
}//end add
고마워요! 어리석은 실수 였지만 도움을 주셔서 감사합니다! – KylePhill975