Revision 4663ae4d-49b6-41f0-b8c8-adfefea3b2e9 - 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