class ListWithHeaderInfo { publid: // ... private: int length; Node *head, *tail; }; class ListWithDummyNode { public: // ... private: Node head; }; // Node using "external data" class ListNode { Item * element; ListNode * next; }; // Doubly linked list node struct ListNode { int value; ListNode *next, *prev; }