Inverting a binary tree is actually something that weak candidates seem to find a way to cheat on though.
Same thing with Fizzbuzz, so it was an artificial example in my post.
The best thing for us seems to be relatively simple coding questions that are domain specific problems.
My go-to the last year or so has been an interview like this:
1) Give a demo of the product
2) Explain a problem the product has/had to solve
3) Go over the entities/objects involved in the problem
4) Present this as a simplified whiteboard problem
5) Candidate needs to write some code on the board to solve
the issue (Typical solutions < 20 lines of code)
6) Discuss scalability of the solution
7) Discuss alternate ways to refactor the larger code base to avoid having to write the algorithm that was written on the whiteboard at all
The process of having to take a problem that comes from a specific product & translate that into code seems to catch the weak candidates that cheated on the online coding tests and bluffed the recruiter nearly every time.
This is as opposed to places like Google that just constantly try to ramp up the difficulty of the non real-world coding questions they're asking the interviewee.