There's a simple way by which _"each round of DES algorithm is its own inverse"_. Consider round $n$ of DES as involving (almost only) a function $g_n$ with $$g_n(L\mathbin\|R)=\bigl(L\oplus f(R,K_n)\bigr)\mathbin\|R$$ where $K_n$ is the 48-bit subkey for round $n$, and $f$ is the _"cipher function"_ (given in the [definition of DES][1]), and $L$ and $R$ are 32-bit bitsrings forming a 64-bit block. That function $g_n(L\mathbin\|R)$ verifies $g_n(g_n(L\mathbin\|R))=L\mathbin\|R$, as thought in the question; or in other words $g_n$ is an [involution][2]; or in yet other words $g_n\circ g_n$ is the identity function. Proof: $$\begin{align} g_n(g_n(L\mathbin\|R))&=g_n\Bigl(\bigl(L\oplus f(R,K_n)\bigr)\mathbin\|R\Bigr)\\ &=\Bigl(\bigl(L\oplus f(R,K_n)\bigr)\oplus f(R,K_n)\Bigr)\mathbin\|R\\ &=\Bigl(L\oplus\bigl(f(R,K_n)\oplus f(R,K_n)\bigr)\Bigr)\mathbin\|R\\ &=\left(L\oplus0^{32}\right)\mathbin\|R\\ &=L\mathbin\|R \end{align}$$ That proof invokes the definition of $g_n$ (twice), [associativity][3] of $\oplus$, that $f$ is a function, that for all 32-bit $X$ it holds $X\oplus X=0^{32}$ (the bitstring of 32 zero bits), which is the neutral for $\oplus$. ___ DES encryption chains these 33 operations on 64-bit quantities: $$\mathsf{IP}\,,\,g_1\,,\,S\,,\,g_2\,,\,S\,,\,\ldots\,,\,S\,,\,g_{15}\,,\,S\,,\,g_{16}\,,\,\mathsf{IP}^{-1}$$ where $S$ is the "swap" involution defined by $S(L\mathbin\|R)=R\mathbin\|L$, function $\mathsf{IP}$ is some permutation of bits, and $\mathsf{IP}^{-1}$ is the inverse permutation. DES decryption chains these 33 operations on 64-bit quantities: $$\mathsf{IP}\,,\,g_{16}\,,\,S\,,\,g_{15}\,,\,S\,,\,\ldots\,,\,S\,,\,g_2\,,\,S\,,\,g_1\,,\,\mathsf{IP}^{-1}$$ We see that DES encryption then decryption is the identity function: the $(34-j)^\text{th}$ operation of decryption cancels the $j^\text{th}$ operation of encryption: - For $j=33$, because $\mathsf{IP}$ cancels $\mathsf{IP}^{-1}$. - For $j=1$, because $\mathsf{IP}^{-1}$ cancels $\mathsf{IP}$. - For other even $j$, because $g_{j/2}$ is an involution. - For other (odd) $j$, because $S$ is involution. Importantly, encryption and decryption use the very same structure, only the indexes (that, is, the order of the subkeys $K_n$) differ. That allow to use identical hardware or code for both encryption and decryption. ___ The usual definition of a round of a Feistel cipher typically includes the swap $S$: $$\begin{align} g'_n(L\mathbin\|R)&=S\bigl(g_n(L\mathbin\|R)\bigr)\\ &=R\mathbin\|\bigl(L\oplus f(R,K_n)\bigr) \end{align}$$ and this function is _not_ its own inverse per the sense in the question. With that notation, DES encryption and decryption are $$\mathsf{IP}\,,\,g'_1\,,\,g'_2\,,\,\ldots\,,\,g'_{15}\,,\,g_{16}\,,\,\mathsf{IP}^{-1}\\ \mathsf{IP}\,,\,g'_{16}\,,\,g'_{15}\,,\,\ldots\,,\,g'_2\,,\,g_1\,,\,\mathsf{IP}^{-1}$$ When it is said that DES has 16 rounds, it is ignored $\mathsf{IP}$ and $\mathsf{IP}^{-1}$ and for a strict [Vulcan][4], only the 16<sup>th</sup> round (the one without swap) is its own inverse. ___ The [DES specification][5], and many textbooks on Feistel ciphers, give indexes to $L$ and $R$ before and after round $n$ of encryption, with $L_0\mathbin\|R_0$ the plaintext after $\mathsf{IP}$, so that the above equations for $g'_n$ are equivalently worded: $$\begin{align} L_n&\gets R_{n-1}\\ R_n&\gets L\oplus f(R_{n-1},K_n) \end{align}$$ Treatment of the last round vary. Some texts (type _D_) follow DES (which as $m=16$ rounds), consider the ciphertext (before $\mathsf{IP}^{-1}$) to be $L_m\mathbin\|R_m$, and specialize the last encryption round's equations: $$\begin{align} L_m&\gets L\oplus f(R_{m-1},K_m)\\ R_m&\gets R_{m-1} \end{align}$$ <sup>But there are other conventions around: other texts (type _S_) use the same equations for all rounds, but in order to get the same result as DES, either add a final swap or consider the ciphertext to be $R_n\mathbin\|L_n$. Yet others (type _R_) use a regular round structure and consider $L_n\mathbin\|R_n$ as the ciphertext.</sup> ___ As to decryption, DES, texts of type _D_, and often those of type _S_ use the same round equations for encryption and decryption except for the numbering of subkeys, that is for $1\le n<m$: $$\begin{align} L_n&\gets R_{n-1}&&&L_m&\gets L\oplus f(R_{m-1},K_1)\\ R_n&\gets L\oplus f(R_{n-1},K_{16-n})&&&R_m&\gets R_{m-1} \end{align}$$ with the decryption's $L_0\mathbin R_0$ defined as the encryption's $L_n\mathbin R_n$, from which it follows that for $1\le n<m$ the decryption's $L_n\mathbin R_n$ equals the encryption's $R_{m-n}\mathbin L_{m-n}$ and the decryption's $L_m\mathbin R_m$ equal the encryption's $L_0\mathbin R_0$. <sup>Other texts prefer to have the same naming of equal variables for decryption and encryption, and thus define different round equations for decryption, e.g. (for type _R_) $$\begin{align} R_{n-1}&\gets L_n\\ L_{n-1}&\gets R_n\oplus f(L_n,K_n) \end{align}$$</sup> [1]: https://csrc.nist.gov/csrc/media/publications/fips/46/3/archive/1999-10-25/documents/fips46-3.pdf#page=18 [2]: https://en.wikipedia.org/wiki/Involution_(mathematics) [3]: https://en.wikipedia.org/wiki/Associative_property [4]: https://en.wikipedia.org/wiki/Vulcan_(Star_Trek) [5]: https://csrc.nist.gov/csrc/media/publications/fips/46/3/archive/1999-10-25/documents/fips46-3.pdf#page=14