title: Java: binary tree recursion methods
body: <p>I'm quite new to java and one of our assignments requires me to create a binary tree containing nodes with int values. My professor wants us to use one class containing the main method. I applied two recursive methods, one to insert a node and one to display existing nodes. Whenever I run my code however, the console only displays the most recent node that I entered. Is there something wrong with the methods I used? This is what I have so far:</p>
  
  <pre><code>import java.util.Scanner;
  public class node {
  
  private int value;
  static node root;
  public node leftLink;
  public node rightLink;
  
  public node(int v)
  {
      this.value = v;
  }
  
  public int getValue()
  {
      return value;
  }
  
  static void traverseShow()
  {
      if(root.leftLink != null){
          root = root.leftLink;
          traverseShow();
      }
      System.out.println(root.getValue());
      if(root.rightLink != null)
      {
          root = root.rightLink;
          traverseShow();
      }
      return;
  }
  
  static void addNode(node n)
  {
      if(root==null)
      {
          root = n;
      }
      else
      {   
          if(root.getValue()&gt;n.getValue())
          {
              root = root.leftLink;
              addNode(n);
          }
          if(root.getValue()&lt;n.getValue())
          {
              root = root.rightLink;
              addNode(n);
          }
      }
      return;
  }
  
  public static void main(String[] args) 
  {
      int val = 0;
      Scanner sc = new Scanner(System.in);
      boolean loop = true;
      String command = "";
  
      while(loop==true)
      {
          System.out.println("Please enter a command:");
          System.out.println("A = insert a new value");
          System.out.println("B = display all values");
          System.out.println("C = exit program");
          command = sc.next();
          if(command.equalsIgnoreCase("a"))
          {
              System.out.println("Enter value: ");
              val = sc.nextInt();
              node newNode = new node(val);   
              addNode(newNode);
          }
          else if(command.equalsIgnoreCase("b"))
          {
              traverseShow();
          }
          else if(command.equalsIgnoreCase("c"))
          {
              sc.close();
              System.exit(0);
          }
          else
          {
              System.out.println("Invalid command! Please try again.");
          }
      }   
  }
  }
  </code></pre>