我想问一下,就是在链表里,为什么next必须是struct node类型?

代码示例:

typedef struct node {
    int value;
    struct node* next;
}Node;

因为你用链表,就是一个一个的结构体构充当节点,通过指针(也就是你说的next)进行节点的链接
所以:因为next要指向结构体,所以类型要跟该结构体(此处是struct node,其他名字也可以,看你怎么定义)相同

img

next表示指向下一个链表节点的地址,只要是指针类型都可以,甚至你定义个unsigned long都行,因为指针本身就是整型的
但你如果想使用这个指针进行对象操作,那必须转换为struct node *。因为这样程序才能知道你按照struct node结构去访问这个指针指向的空间数据

如果next跟自身类型不同,那还叫链表吗,那也没链上呀
就是next跟自身一样,这样next里还有next,就可以一直链下去
如果next是个int,那不就只有一节,就结束了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632