Member 12928262 Ответов: 1

Проблема связанного списка для вставки узла


Задачи программирования и конкурсы :: HackerRank[^]

Что я уже пробовал:

/*
  Insert Node at the end of a linked list 
  head pointer input could be NULL as well for empty list
  Node is defined as 
  struct Node
  {
     int data;
     struct Node *next;
  }
*/
Node* Insert(Node *head,int data)
{
  // Complete this method
    Node *temp;
    temp=head;
    if(temp=='\0'){
        temp=(struct Node *)malloc(sizeof(struct Node));
        temp->data=data;
        head=temp;
        head->next='\0';
    }
        
     else {
            while (temp!='\0'){
                temp=temp->next;
            }
        temp->data=data;
        temp->next='\0';
    }
    
    return head;
}

Patrice T

И вы собираетесь рассказать нам, в чем проблема ?

1 Ответов

Рейтинг:
2

CPallini

Цитата:
ещё {
while (temp!= '\0'){
temp=temp - & gt;Далее;
}
temp - > data=данные;
temp - & gt;next= '\0';
}

Должно быть, вместо этого
else 
{
  while ( temp->next )
  {
    temp = temp->next;
  }
  temp->next = (struct Node *)malloc(sizeof(struct Node));
  temp->next->data = data;
  temp->next->next = NULL;
}




Пожалуйста, обратите внимание, что в C++ код, использование:
  • nullptr (вместо '\0' или NULL.)
  • new вместо malloc.
  • Node конструктор для его инициализации.


По крайней мере, если вы настаиваете на использовании C- как и программирование, всегда проверяйте возвращаемое значение malloc.