Is the book wrong about the Nyquist Sampling Criterion?
I thought sampling with twice the signal's highest frequency component would be adequate to completely recover the signal. But above it says sampling twice creates a saw-tooth like wave. Is the book wrong?


The book is wrong, but not for the reason you think.  If you squint at the dots that indicate samples, it's sampling at twice the frequency that it says.

So first, you should draw some signals and sample them yourself (or use a math package, if you're not up to pencil and paper).

Second, The Nyquist theorem says that it is theoretically possible to reconstruct a signal if you already know that the signal content's spectrum is strictly less than 1/2 the sampling rate.

You reconstruct the signal by low-pass filtering it.  Before filtering, the signal can be distorted, so you have to know what you're looking at to see that the result might look OK.  Furthermore, the closer your signal content's spectrum is to the Nyquist limit, the sharper the cutoff needs to be in your anti-alias and reconstruction filters.  This is fine in theory, but in practice a filter's response in the time domain gets longer roughly in proportion to how sharply it transitions from its passband to its stopband.  So in general, if you can, you sample well above Nyquist.

Here's a picture that goes with what your book should have said.

Case A: one sample per cycle (samples made obvious)

Case B: two samples per cycle, landing on the intersections -- note that this is the same output as the one sample per cycle case, but only because I sampled the first one at the intersections.

Case C: Again, two samples per cycle, but this time at the extremes.  If you sample at exactly twice the signal component frequency, then you can't reconstruct.  In theory you could sample oh-so-slightly lower, but you'd need a filter with an impulse response that spans enough of the result so that you can reconstruct.

Case D: Sampling at 4x the signal frequency.  If you connect the dots you get a triangle wave, but it's not correct to do so -- in sampled time, the samples only exist "at the dots".  Note that if you put this through a decent reconstruction filter you'll get a sine wave back, and if you change the phase of your sampling then the output will be shifted equally in phase, but its amplitude won't change.