The following link explains it. The implementation is said to work by storing the XOR of the previous and next address(say nxp), instead of storing both(previous and
But isnt this practically using the same space as having previous and next pointers?
No - it uses about half the space, as the size of the result of XOR-ing the "prev" and "next" is equal to the size of the larger of the two.