Linked List Operator Overloading

Does it require to pass reference in the function of istream and ostream??

istream& operator >>(istream &is,node*&head){
/// code
}

passing is as reference is part of syntax it is required
because it is input stream

head is pass by reference so that changes in head reflect back to main

returning istream& is helpful when you have to take more than one list at once
for ex
cin>>head1>>head2;
in this case when cin>>head1 will executed it is necessary to replace it with cin again so that it becomes cin>>head2
but if you make return type to void it becomes garbage>>head2
which is wrong and leads to error

i hope this help
if you have more doubts regarding this feel free to ask
if your doubt is resolved mark it as resolved from your doubt section inside your course

What if we have to take other input not for a linked list than?? If we take input then will it also be overloaded??

you can try that
i think it should work