Checkpoint 1 completed functions

The functions seem to work and pass his tests.  Increase key is kind of
long because there is some repeated code to swap nodes.  If you want to,
you can write a helper function (swap) to do the repeated code, but it
works fine.