When I added node to the binary tree and tried to show information about it, the information is not displayed. I think I have some link problems in the recursive insertion algorithm, but I cannot fix it.
package test; class BinaryTree<T> { private static class Node<T> { int key; T data; Node<T> leftChild; Node<T> rightChild; public Node(int key,T data) { this.key = key; this.data = data; } } public Node<T> rootNode; public BinaryTree() { rootNode = null; } public Node<T> getRootNode() { return rootNode; }
If I add node with this algorithm and try to show the information, it works. How can I fix the problem with a recursive algorithm?
public void addNode(int key, T name) { Node<T> newNode = new Node<T>(key,name); if(rootNode == null) { rootNode = newNode; } else { Node<T> focusNode = rootNode; Node<T> parent; while(true) { parent = focusNode; if(key < focusNode.key) { focusNode = focusNode.leftChild; if(focusNode == null) { parent.leftChild = newNode; return; } } else { focusNode = focusNode.rightChild; if(focusNode == null) { parent.rightChild = newNode; return; } } } } }
Thanks for any help.
source share