1. a. public void keep(int howMany){ if( howMany == 0 ){ head = null; } else { Node finger = head; // find the node before howMany things for( int i = 0; i < howMany-1 && finger != null; i++ ){ finger = finger.next(); } if( finger != null ) { finger.setNext(null); } } b. O(n). Worst case, have to traverse the entire list. c. No! The tail reference only gives us access to the end of the list, but that doesn't help finding the howManyith thing. d. No! The key thing is that we need to jump to a particular index. prev references don't make that any faster. 2. - Remove the last value - Swap two values - Remove all items: this assumes that you simply set size to 0 and do not null out the values in the array. 3. - Remove the first thing - Remove all items: simply set head to null