class Solution { public: struct ListNode { int key, val; ListNode *prev, *next; ListNode() : key(0), val(0), prev(nullptr), next(nullptr) {} ListNode(int key, int val) : key(key), val(val), prev(nullptr), next(nullptr) {} ListNode(int key, int val, ListNode* prev, ListNode* next) : key(key), val(val...