class List { private: class Node { public: int data; Node * next; Node (int data, Node *next) { Node::data = data; Node::next = next; } }; Node *head; public: // default contstructor: creates empty list List () { head = NULL; }; // destructor: destroys list ~List (); // outputs list contents to cout void outputList () const; // adds a value at the beginning of the list void insert (int value); // Method "countOddValues" returns the number of nodes in the list containing odd values. // Note that "containing" refers to the *contents* of the node, not its position in the list. // If the list contains no odd values, it returns 0. int countOddValues() const; // Method "deleteValuesMultThree" deletes every node containing // a value that is an exact multiple of 3 (i.e. ..., -9, -6, -3, 0, 3, 6, ...). // If the list contains no values that are multiples of 3, it has no effect. void deleteValuesMultThree(); };