int max() { if (empty()) return 0; if (head.empty()) return tail.max(); if (tail.empty()) return head.max(); else return std::max(tail.max(),head.max()); }
T max()const { return maxOfTwo(A.max(), B.max()); }