## DEV Community is a community of 661,481 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# Data Structures & Algorithms using Rust: Convert Binary Number in a Linked List to Integer Sivakumar
Learning rust

As part of Data Structures & Algorithms implementation using Rust, let's see how to solve `Convert Binary Number in a Linked List to Integer` problem.

###### Problem Statement
``````Given head which is a reference node to a singly-linked list. The value of each node in the linked list is either 0 or 1. The linked list holds the binary representation of a number.

Return the decimal value of the number in the linked list.
``````
###### Instructions
``````Example 1:

Output: 5
Explanation: (101) in base 2 = (5) in base 10

Example 2:

Output: 0

Example 3:

Output: 1

Example 4:

Output: 18880

Example 5:

Output: 0

Constraints:

The Linked List is not empty.
Number of nodes will not exceed 30.
Each node's value is either 0 or 1.
``````
###### Solution

Please find below the solution implemented using Rust

``````// Definition for singly-linked list.
// #[derive(PartialEq, Eq, Clone, Debug)]
// pub struct ListNode {
//   pub val: i32,
//   pub next: Option<Box<ListNode>>
// }
//
// impl ListNode {
//   #[inline]
//   fn new(val: i32) -> Self {
//     ListNode {
//       next: None,
//       val
//     }
//   }
// }
impl Solution {
pub fn get_decimal_value(head: Option<Box<ListNode>>) -> i32 {
let mut v = Vec::new();
loop {
let n = iter.next();
match n {
Some(x) => {
v.push(x.val);
iter = x.next.iter();
},
None => break
};
}
v.iter().fold(0, |acc, &b| acc*2 + b as i32)
}
}
``````