The player is certaily easiest to work with as global.
Linked lists have the advantage of not having a size limit, so you don't end up with a nearly empty array hogging memory, running out of array space, or time consuming resizing of arrays. Also, you don't have to copy all of the data whan transfering the object, and a doubly linked list is very easy to add to or remove from.
I have heard it mentioned on the internet that a circular doubly linked list could be used to store all of the active creatures to make updating each turn very easy(all you need to remember is the current creature, allowing the loop to break often to redraw the screen on longer turns).
Finally, read what experienced people have to say:
http://roguebasin.roguelikedevelopment.org/index.php?title=ArticlesAlso, disregard all the people who say that global variables are evil and MUST be avoided. They are just bad in excess. A handful, even upwards of 20, makes complete sense for data that is shared across many functions, or even for anything, especially while in early development.
Make your first level a global, you can change it later once you know that it works(but don't wait too long, or you will find it very hard to change). Keep the player global until it doesn't make sense(it will probably always will make sense to keep the player global to an extent, since you will almost never get so advanced on your first attempt, unless you planned it from the start)
Edit: Over 10 posts added since I started writing this.