LINKED LISTS IN C
Suppose I have a simple List and already insert several Nodes. Which of these options to Free Memory is the correct 1 or 2? He always told me not to touch the node * head
#include <stdio.h>
#include <stdlib.h>
typedef struct _Nodo{
  int dato;
  struct _Nodo *siguiente;
}Nodo;
//Prototipos
void LiberarNodos( Nodo *cabeza);
int main(){
  Nodo *cabeza=NULL;
return 0;
}
//OPCION 1
void LiberarNodos( Nodo *cabeza){
        Nodo *test;
        test=cabeza;
        while( test !=NULL){
            free(test);
            test=test->siguiente;
         }
        }
//OPCION 2
void LiberarNodos( Nodo *cabeza){
        Nodo *test;
        while( cabeza !=NULL){
            test=cabeza;
            cabeza=cabeza->siguiente;
            free(test);
         }
        }
In Option 1 : it is proposed by me, but I have not seen it in any tutorial
In Option 2 : If it appears in some but it seems that it does not release the First Node, it starts with the Second Node.
 
     
    