Revision d1815dad-1aa3-4338-a59f-8cd4b8a67a54 - Code Golf Stack Exchange
#J, <strike>31</strike> <strike>30</strike> <strike>14</strike> <strike>12</strike> 11 bytes
[:;<@|.`</.
<strike>[Ych][1]. Too big.</strike>
Takes a matrix as input.
**Explanation**
J has an advantage here. There's a command called [oblique][2] (`/.`) which takes the oblique lines in turn and applies a verb to them. In this case I'm using a gerund to apply two verbs alternately: `<` ([box][3]) and `<@|.` ([reverse][4] and box). Then it's just a matter of unboxing everything using `;` ([raze][5]).
[1]: https://en.wiktionary.org/wiki/ych_a_fi
[2]: http://jsoftware.com/help/dictionary/d421.htm
[3]: http://jsoftware.com/help/dictionary/d010.htm
[4]: http://jsoftware.com/help/dictionary/d231.htm
[5]: http://jsoftware.com/help/dictionary/d330.htm