Ok, some riddles that don't rely on ridiculous "assumptions" (quotes b/c you're not even assuming something vaguely realistic) about how computers/compilers work...
0) Reverse a linked list (you can modify the list).
1) (I've posted this one before but I really like it) I give you a pointer to the head node of a linked list. I want to know whether the linked list has a cycle. What are the time & space complexities?
2) You're organizing an epic bachelor party where attendees have the chance to get a hooker and some blow. There's a list of available hookers & a list of available blow. All attendees (males) submit the particular hookers & blow that they would be interested in.
This party is gonna be epic, so each hooker can only service one attendee. And the blow gets consumed so clearly each "quantity" of blow (clearly I know nothing about drugs) can only be used by one attendee (and perhaps his hooker).
Maximize the number of <attendee,hooker,blow> combinations. Time & space complexities?
If the description is too confusing, this should be more clear: you have 3 sets of people, {F},{G}, and {H}. For each f \in F, LG(f) returns the subset of G that f is compatible with; similarly HG(f) returns the subset of H that f is compatible with. You want to maximize the number of <f,g,h> triples under the following conditions:
1) any single person can only placed in one triple
2) Each <f,g,h> triple you find must have property that g \in LG(f) and h \in HG(f)
edit: clearly if you've seen these, then no need to post an answer

(like the first one is pretty easy/common)