gpt4 book ai didi

c - 在链表代码的尾部插入一个节点

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:54 24 4
gpt4 key购买 nike

我正在尝试解决 hackerrank 上的数据结构问题。我似乎无法找到我的代码有什么问题。我想知道这里是否有问题。

Node* Insert(Node *head,int data){
struct Node *ptr = head,*new_node=(struct Node*)malloc(sizeof(struct Node));

new_node->data=data;
new_node->next=NULL;
if(ptr){
while(ptr->next != NULL){
ptr=ptr->next;
}
ptr->next=new_node;
}
else{
head=new_node;
}
return(head);
}

奇怪的是,几个月前我练习时接受了相同的代码。这是 link to the problem .

附言我花了几个小时试图弄清楚,但我不确定 SO 是否适合提出问题。如果不是,我愿意将其删除。

编辑:

Node is defined as 

struct Node
{
int data;
struct Node *next;
}

最佳答案

首先typedef结构避免命名不匹配。

struct node {
int data;
struct node *next;
};
typedef struct node Node;

Insert() 函数应该是

void Insert(Node **head,int data){
while(*head){
head = &(*head)->next;
}
*head = malloc(sizeof **head);
(*head)->data=data;
(*head)->next=NULL;
}

然后像这样调用Insert()

int main() {
Node *headptr = 0;
Insert(&headptr, 100);/*pass the address of headptr */
/*..
display(headptr);
*/
return 0;
}

关于c - 在链表代码的尾部插入一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com