Hola, para el trabajo que quieres hacer con punteros en C# es sencillo si se utilizan punteros administrados (referencias), ya que si te pones con punteros no administrados puedes tener mas problemas.
Pero es sencillo lo que quieres hacer, simplemente tienes que crear una clase que tenga un elemento del su mismo tipo donde vas a poder ligarlo con el siguiente elemento, y si es una lista doblemente ligada pues usas dos.
class Elemento
{
Elemento anterior;//Si lo necesitas
//Otros valores o datos que necesites
Elemento siguiente;
}
Despues lo unico que tienes que poner en tu programa seria un codigo parecido a esto:
//...
Elemento lista_primero,lista_actual=new Elemento();
lista_primero=lista_actual;
//...
con eso creas la lista, después para ir insertando elementos lo unico que tienes que hacer es lo siguiente:
//...
lista_actual=lista_actual.siguiente=new Elemento();
//...
y de esa forma vas creando elementos nuevos que se van a ir insertando al final de la lista.
Para insertar uno al principio es facil también:
//...
Elemeno tmp=lista_primero;
lista_primero=new Elemento();
lista_primero.siguiente=tmp;
//...
Y por ultimo, para insertar un elemento en alguna posición arbitraria lo único que tienes que hacer es irte al primer elemento de la lista e ir iterando hacia los elementos siguientes hasta que encuentres la posición donde quieres que se quede el elemento a insertar. Una vez ahí el elemento anterior al nuevo apuntará al elemento nuevo, y el elemento siguiente del nuevo apuntara al resto de la lista. Hay que tener cuidad de no pasarse en las iteraciones, cheka que el elemento al que te vayas a mover en la siguiente iteracion no sea null, o tendras error de acceso de memoria.
nota...casi no me gustan los punteros seguros(administrados)