Handle Score
@Ibrahim Nash 5725
@blackshadows 5685
@akhayrutdinov 5111
@mb1973 4989
@Quandray 4908
@saiujwal13083 4156
@sanjay05 3762
@marius_valentin_dragoi 3511
@sushant_a 3453
@KshamaGupta 3318
@the_coder95 3302
Complete Leaderboard
XOR Linked List
Easy Accuracy: 46.92% Submissions: 3188 Points: 2

An ordinary Doubly Linked List requires space for two address fields to store the addresses of previous and next nodes. A memory efficient version of Doubly Linked List can be created using only one space for address field with every node. This memory efficient Doubly Linked List is called XOR Linked List or Memory Efficient as the list uses bit-wise XOR operation to save space for one address.
Given stream of data of size N for the linked list, your task is to complete the function insert() and printList(). The insert() function pushes (or inserts at beginning) the given data in the linked list and the printList() function returns the linked list as a list.
Note: There is an utility function XOR() that takes two Node pointer to get the bit-wise XOR of the two Node pointer. Use this function to get the XOR of the two pointers.

Example 1:

LinkedList: 9<->5<->4<->7<->3<->10
10 3 7 4 5 9
9 5 4 7 3 10

Example 2:

LinkedList: 58<->96<->31
31 96 58
58 96 31

Your Task:
The task is to complete the function insert() and printList() as required.

Note: The driver code prints the returned list twice, once forward and once backward.

Expected Time Complexity: O(N)
Expected Auxiliary Space: O(1)

1 <= N <= 100


to report an issue on this page.


We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?


All Submissions

My Submissions:

Login to access your submissions.

XOR Linked List

Output Window