private static <T> boolean is_symmetric_helper(BinaryTree<T> l, BinaryTree<T> r) {
        if(l == null && r == null) {
            return true;
        } else if(l != null && r != null) {
            return equals(l.getData(), r.getData()) && is_symmetric_helper(l.getLeft(), l.getRight()) &&
                    is_symmetric_helper(l.getRight(), l.getLeft());
        } else { // (l != null && r == null) || (l == null && r != null)
            return false;
        }
    }