0
addAtBegin
有什麼不對?在將新創建的node
分配給start
後,該列表似乎是正確的,但是當控制返回到main
時,新值不會保存。如何在鏈表的開頭插入節點?
typedef struct node
{
int data;
struct node *link;
}node;
node* createList(int data)
{
node *tempNode=(node*)malloc(sizeof(node));
tempNode->data=data;
tempNode->link=NULL;
return tempNode;
}
void addAtBegin(node *start,int data)
{
node *addedNode=(node *)malloc(sizeof(node));
addedNode->data=data;
addedNode->link=(start==NULL)?NULL:start;
start=addedNode;
}
void displayNodes(node *start)
{
node *startCopy=start;
while(startCopy!=NULL)
{
printf("%d\t",startCopy->data);
startCopy=startCopy->link;
}
printf("\n");
}
int main()
{
node *start=createList(2);
addAtBegin(start,1);
displayNodes(start);
return 0;
}
或者應該返回addedNode,就像createList一樣。 – 2010-01-01 18:11:59
謝謝,問題解決了 – user158625 2010-01-01 18:17:10