Diferença de C ++ entre ** e * & na passagem de parâmetro

Eu implementei operações em uma lista, uma delas é add e, como eu não quero retornar nada, li que precisava usar ** e funciona, mas vi em outro local que ela passou como * &, mas eu não sei a diferença

addNode (nó * & cabeçalho, valor int) addNode (nó ** cabeçalho, valor int)

Qual é a diferença e qual é a melhor, ou eles significam o mesmo? Eu sei que o segundo é ponteiro para um ponteiro.

obrigado

questionAnswers(3)

yourAnswerToTheQuestion