title: Recursive Insert for Binary Tree
body: <p>I'm working on code for insertion into a binary search tree. It works for the first node I insert, making it the root, but after that it doesn't seem to insert any nodes. I'm sure it's a problem with setting left/right references, but I can't quite figure it out. Please help!</p>
  
  <pre><code>    //params: key of node to be inserted, parent node
      public void insert(int newKey, TreeNode parent){
  
      //if the root of the tree is empty, insert at root
      if(this.getRoot() == null){
          this.root = new TreeNode(newKey, null, null);
      }
  
      //if the node is null, insert at this node
      else if(parent == null)
          parent = new TreeNode(newKey, null, null);
  
  
      else{
          //if the value is less than the value of the current node, call insert on the node's left child
          if(newKey &lt; parent.getKey()) {
                  insert(newKey, parent.getLeft());
          }
          //greater than value of current node, call insert on node's right child
          else if(newKey &gt; parent.getKey()){
                  insert(newKey, parent.getRight());
          }
          //same as value of current node, increment iteration field by one
          else if(newKey == parent.getKey())
              parent.incrementIterations();
      }
  
  }
  </code></pre>
  
  <p>My treenodes have key, left, right, and iteration fields, as well as getter/setter functions. 
  Thank you in advance! </p>