I encountered a problem recently which requires me to implement a function with such signature:

int remove_consecutive_duplicates( linknode*& list );

The linknode here refers to a predefined structure:

struct linknode{
char data;
linknode* next;
};

Well, my question is, what does the notation - linknode*& list - stand for?

I got confused with *& being used together, my initial guess will be it is a pointer of type linknode, and it points to the address of object linknode, but not quite sure whether the understanding is correct.

If the above assumption is correct, what is the difference with - linknode* list ?

Guys, please help me on this if you got any idea, many thanks~