Decimal Equivalent of Binary Linked List

Given a singly linked list of 0s and 1s find its decimal equivalent.

```   Input  : 0->0->0->1->1->0->0->1->0
Output : 50

Input  : 1->0->0
Output : 4```

Decimal Value of an empty linked list is considered as 0.

Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

Initialize result as 0. Traverse the linked list and for each node, multiply the result by 2 and add node’s data to it.

```// C++ Program to find decimal value of
#include<iostream>
using namespace std;

struct Node
{
bool data;
struct Node* next;
};

/* Returns decimal value of binary linked list */
{
// Initialized result
int  res = 0;

{
// Multiply result by 2 and add
res = (res  << 1) + head->data;

// Move next
}
return res;
}

// Utility function to create a new node.
Node *newNode(bool data)
{
struct Node *temp = new Node;
temp->data = data;
temp->next = NULL;
return temp;
}

/* Drier program to test above function*/
int main()
{

cout << "Decimal value is "

return 0;
}
```

Output :

`Decimal value is 11`

This article is contributed by Shivam Gupta. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
2.1 Average Difficulty : 2.1/5.0
Based on 48 vote(s)