如何从结构中返回头部

时间:2016-07-13 05:31:43

标签: c

代码我试图回头:

node insert(node *head, int num){
  node *newnode;
  newnode=getnode();
  newnode->data=num;
  nednode->next=NULL;

  if(head==NULL){
     head=newnode;
     newnode->next = NULL;
  }
  head->next=newnode;
  return head;
}

编译后,我收到此错误:

  

"错误:预期的声明说明符或' ...'之前' *'令牌"

提前致谢

3 个答案:

答案 0 :(得分:1)

您的功能原型似乎不完整:

node insert(*head,num)

应该是:

node insert(node *head, int num)

答案 1 :(得分:1)

您的返回值应该是node *。因此它应该是node * insert(node * head,int num);

你也有一个错误的newnode。我尝试了它,在更改返回值后它对我有效。

答案 2 :(得分:0)

您的代码应该是这样的。

将nednode更改为newnode。

当您使节点与链接连接时,您需要找到链接的尾部,并将新节点连接到尾部。

你应该返回节点*而不是节点。因此,将func的返回类型更改为node *。

node* insert(node *head, int num){
  node *newnode;
  newnode=getnode();

  newnode->data=num;
  newnode->next=NULL;

  if(head==NULL){
     head=newnode;
  } else {
     node *p = head;
     while(p) {
       p = p->next;
     }
     p->next=newnode;
  }
  return head;
}