Добавить элемент в конец двусвязного списока
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int a;
struct node *next;
struct node *prev;
} Node;
Node *AddElem(Node **Root, int i){
Node *Head, *p;
//Node *List = *Root;
Head = malloc(sizeof(Node));
Head->a = i;
Head->prev = NULL;
Head->next = NULL;
if(*Root == NULL){
*Root = Head;
printf("List == NULL\n");
return 0;
}
// Добавляем элемент
while(Head->next != NULL){
Head = Head->next; // До конца списка
(*Root)->prev = Head;
Head->next = *Root;
}
//Head->next = List;
//Head = List;
return *Root;
}
void NPrint(Node *Root){
Node *p = Root;
while(p != NULL){
printf("N-> %d\n", p->a);
//p = p->right;
p = p->next;
}
}
int main(){
Node *Root = NULL;
Root = AddElem(&Root, 2);
Root = AddElem(&Root, 3);
Root = AddElem(&Root, 6);
Root = AddElem(&Root, 4);
Root = AddElem(&Root, 9);
Root = AddElem(&Root, 10);
NPrint(Root);
//NDel(Root);
return 0;
}
Здравствуйте, подскажите как добавить элемент в конец двусвязного списка? Выводит List == NULL;