Рекурсия структуры
Есть структура
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 от указателя. Но это плохой подход хочется разобраться как правильно(чисто) инициализировать такую рекурсию из связанных структур на произвольную глубину.