public Node addNode(int data, Node head){
        Node tempHead = head;
        Node n = Node.newNode(data);
        if(head == null){
            head = n;
            return head;
        }
        Node prev = null;
        while(head != null){
            prev = head;
            if(head.data < data){
                head = head.right;
            }else{
                head = head.left;
            }
        }
        if(prev.data < data){
            prev.right = n;
        }else{
            prev.left = n;
        }
        return tempHead;
    }
Date 07/07/2014 
@author tusroy

Youtube link - https://youtu.be/bmaeYtlO2OE
Youtube link - https://youtu.be/_SiwrPXG9-g
Youtube link - https://youtu.be/NA8B84DZYSA
src/com/interview/tree/BinaryTree.java