У меня проблема с объединением 2-х списков, так что я (думаю) делаю. присвойте список A текущему, перейдите к последнему узлу текущего, добавьте список B в текущий, назначьте ток head2 и, наконец, распечатайте. но когда я запускаю его ничего не выходит, список head2 еще нулевойслияние двух связанных списков
#include<stdio.h>
#include<stdlib.h>
typedef struct node {
int val;
struct node * next;
} node_t;
void print_list(node_t * head);
node_t* merge(node_t *head,node_t *head1);
int main(){
int number;
node_t * head = NULL;
node_t * head1 = NULL;
//inputA
//inputB
printf("merged list is : \n");
print_list(merge(head,head1));
printf("\n");
return 0;
}
node_t *merge(node_t *head,node_t *head1){
node_t * current = head;
while(current->next != NULL){
current = current->next;
}
current->next = head1;
return current;
}
void print_list(node_t * head) {
node_t * current = head;
while (current != NULL) {
printf("%d ", current->val);
current = current->next;
}
}
EDIT: голова списка А и head1 является список B, уже есть некоторые данные. он будет удерживать только последний узел A ex. А = 1 2 3, В = 4 5 6 Обратно 3 4 5 6
Я полагаю, что 'head2 = слияние (голова, head1);' '.. на merge':' возвращения головы, ' – BLUEPIXY
мой метод не так, как я держать оба списка? – Hary
Чтобы создать новый список (каждый элемент) результатов. – BLUEPIXY