#include #include using namespace std; class Node { public: Node(int i) : val(i), prev(nullptr), next(nullptr), child(nullptr) {} int val; Node* prev; Node* next; Node* child; }; int main(void) { Node * _1 = new Node( 1); Node * _2 = new Node( 2); _2->prev=_1; _1->next=_2; Node * _3 = new Node( 3); _3->prev=_2; _2->next=_3; Node * _4 = new Node( 4); _4->prev=_3; _3->next=_4; Node * _5 = new Node( 5); _5->prev=_4; _4->next=_5; Node * _6 = new Node( 6); _6->prev=_5; _5->next=_6; Node * _7 = new Node( 7); _2->child=_7; Node * _8 = new Node( 8); _8->prev =_7; _7->next=_8; Node * _9 = new Node( 9); _9->prev =_8; _8->next=_9; Node *_10 = new Node(10); _10->prev =_9; _9->next=_10; Node *_11 = new Node(11); _8->child=_11; Node *_12 = new Node(12); _12->prev =_11; _11->next=_12; Node *head = _1; auto printListRecursive = [](Node* node, auto&& printListRecursive) { if (node == nullptr) return; cout << node->val << " "; return printListRecursive(node->next, printListRecursive); }; auto printList = [](Node* node) { while (node != nullptr) { cout << node->val << " "; node = node->next; } cout << endl; }; printListRecursive(head, printListRecursive); cout << endl; printList(head); cout << std::hardware_destructive_interference_size << endl; return 0; }