首页 > 解决方案 > 分配给类型“struct ListNode”时的类型不兼容

问题描述

我尝试动态创建一个结构 ListNodes 的数组,我想在其中存储每个节点。我收到此消息,但我不知道应该是什么问题错误截图

struct ListNode {
  int val;
  struct ListNode *next;
  };

struct ListNode* middleNode(struct ListNode* head){

int count=0;
int i=0;
struct ListNode* p=head;
struct ListNode* array = (struct ListNode*)malloc(100*sizeof(struct ListNode));
while(head!=NULL)
{
    array[i]= head;
    head=head->next;
    count++;
    i++;
}
    
  return array[i/2];
    free(array);

}

这是 C++ 中的解决方案:在此处输入图像描述

标签: clinked-list

解决方案


根据我们在评论中的讨论,您可以将函数编写为:

struct ListNode* middleNode(struct ListNode* head)
{
    int i=0;
    struct ListNode *retval;
    struct ListNode **array = malloc(100*sizeof(struct ListNode *));
    while(head!=NULL)
    {
        array[i]= head;
        head=head->next;
        i++;
    }
    retval= array[i/2];
    free(array);
    return retval;
}

推荐阅读