It is possible to apply Binary Search in a linked list, however, you will lose the main reason for using Binary Search, the factor of having complexity O (log n).
The fact is that binary searches applied in arrays are efficient because the elements of an array are allocated in memory contiguously, which makes access to any element a trivial operation, O (1).
On the other hand, in a linked list there is no guarantee that the elements will be allocated contiguously, and even if they were, there is no way to access them in O (1) time. Thus, to find the middle of the list, it is necessary to unlock an algorithm that will have to visit us until we find the medium. This operation already makes the algorithm slower. The worst case of a binary search in a linked list is O (n log n).
Because of this, sequential searches on linked lists tend to be faster, since O (n) < O (n log n). See update below for cases where it might be worthwhile to use binary search in a linked list.
About the algorithm, this looks interesting: link
The challenge, compared to arrays, is to determine the middle of the list. For this, the above algorithm uses a different approach that does not require knowing the size of the list previously.
This same algorithm is described in this article: link
Since this is an exercise, I would go by the path quoted above.
Update
There are cases where it might make sense to use binary search in a linked list, explain.
Suppose that the task of making the comparison is costly. In this case, the binary search algorithm may make sense, because O (log n) comparisons are made. In the part O (n) is not made comparison, but only goes through the list to find the means.
On the other hand, if the algorithm is sequential search then for each item the comparison is performed. This can become more costly compared to the binary search scenario.