有3个问题:
s->data输出的是值,不是地址。改成&s->data.
你在p=s之后才输出的,p和s都相等了。把p=s移到printf后面。
struct定义里,应该是struct NODE *next;大写NODE。这个NODE表示类型,int那种,此时typedef应该还没生效。
这样就正确了,各个节点之间都是挨着的。