This version is more clear for a human, but it does contain duplicate logic.
This line:
head = head->next;
is another form of this line: prev->next = prev->next->next;
Both delete by setting "->next". Code duplication is a common source of bugs, and that's the rationale behind Linus's version, which eliminates duped code.