1) Errata: In problem 4 the snippet B p5 = new A(2) produces a compile time error In problem 6 the line if(node == null) return null; should have been if(n == null) return null; 2) More solutions: For your hacking pleasure, our amazing TAs have coded up a recursive solution for the third problem. Here it is public static CircularListNode reverse(ListNode n){ // Empty list: 2 pts if(n == null) return null; // Recursive call: 1pt CircularListNode node = new CircularListNode (); node.data = n.data; CircularListNode holder = reverse(n.next); // Singleton list: 2 pts if(holder == null) node.next=node.previous=node; else{ // Intermediate: 4 pts node.next = holder; node.previous = holder.previous; holder.previous = node; node.previous.next = node; } // Correct return: 1 pt return node; }