Рекурсия структуры

Есть структура

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

int main(){
  struct ListNode  l1, l2;
  l1.val = 0;
  l1.next->val = 1;
  //l1.next->next->val = 2;
  l2.val = 9;
  //l2.next->val = 8;
  printf ("l1.val = %d\r\n", l1.val);
return 0;
}

Хочу её про инициализировать чтобы проверить выполнение алгоритма по задаче. Столкнулся с проблемой - при инициализации за комментированных строк программа собирается, но не работает.

int main(){
struct ListNode  l1, l2;
struct ListNode * pointer1 = l1.next->next;
l1.val = 0;
l1.next->val = 1;
//l1.next->next->val = 2;
pointer1->val = 2;
l2.val = 9;

А так работает.

Куда копать?

При использовании способа описанного в нижнем куске кода в вопросе создаётся структура с глубиной 2 изначальных + 2 от указателя. Но это плохой подход хочется разобраться как правильно(чисто) инициализировать такую рекурсию из связанных структур на произвольную глубину.


Ответы (0 шт):