int sum(struct link *head){ struct link *p; int s=0; p=head->next; //因为链表的头结点一般是没有数据域的 while(p) { s+=p->data; //通过循环让每个节点的数据域相加 p=p->next; //每次相加完后,让p重新指向下一节点的地址 } return s; //返回你需要的结果}