private boolean isSibling(BSTNode<T> root, BSTNode<T> node1,  BSTNode<T> node2 ) {
        // any node being null will return false
        if(root == null || node1 == null || node2 == null) {
            return false;
        }

        // if root;s left child and right child are both these nodes oor vice versa .. return true
        if((root.left == node1 && root.right == node2) || (root.right == node1 && root.left == node2)) {
            return true;
        }
        // otherwise recurse on left and right subtree
        return isSibling(root.left, node1, node2) ||isSibling(root.right, node1, node2) ;
    }