void InsertAtTail(struct node** headref,int val)
{
struct node *current,*newnode;
current=*headref;
newnode=malloc(sizeof(struct node));
if(current==NULL)
{
newnode->data=val;
newnode->next=NULL;
*headref=newnode;
current=*headref;
}
else
{
while(current->next!=NULL)
{
current=current->next;
}
newnode->data=val;
newnode->next=NULL;
current->next=newnode;
}
}
struct node* CopyList(struct node* headref)
{
struct node* newlist=NULL;
struct node* current;
current=headref;
if(current==NULL)
{
newlist=current;
}
else
{
while(current!=NULL)
{
InsertAtTail(&newlist, current->data);
current=current->next;
}
}
return (newlist);
}
Stanford の CS101 ノートを調べていて、リンク リストのコピーを作成するためのコードを見つけました。ただし、テール ノードへのポインタも使用されていました。それ(テールポインター)を使用せずにこのコードを記述しました。リンクリストは初めてです。このまま進めていいのか教えてください。元の住所とコピーの住所を印刷したところ、どちらも異なっていました。Xcodeでcを使用しています。