c#如何创建链表的结构体(struct)

例如c++中的结构体为

typedef struct aa
{
     int x,
     struct aa *next;
};

这个结构在c#中不使用指针应该如何定义为struct呢?

由于C#结构体不能引用自身,所以我用IntPtr代替
IntPtr next

Marshal.PtrToStructure()读取