title: why can't i make these functions static?
body: <p>why can't i just make inOrder and insert static and pass the object's root in the main function??
  instead of creating interim functions of same naem with void return types and then call them in the main function</p>
  <pre><code>public TreeNode insert(TreeNode root, int value){ - make this static
          if (root == null){
              root = new TreeNode(value);
              return root;
          }
          if (value&lt;root.data){
              root.left = insert(root.left,value);
          }else {
              root.right = insert(root.right, value);
          }
          return root;
      }
      public void insert(int value){ i am asking if i can eleminate this function
          root = insert(root,value);
      }
      public void inOrder(){ - and this function 
          inOrder(root);
      }
      public void inOrder(TreeNode temp){ - make this static
          if (temp == null){
              return;
          }
          inOrder(temp.left);
          System.out.print(temp.data);
          inOrder(temp.right);
      }
  </code></pre>
  <p>and in the main function i'll directly call insert(object.root, ) and inOrder(object.root)
  i did this and it did not show any output</p>