1290. Convert Binary Number in a Linked List to Integer
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.
Example 1:

Input: head = [1,0,1] Output: 5 Explanation: (101) in base 2 = (5) in base 10
Example 2:
Input: head = [0] Output: 0
Example 3:
Input: head = [1] Output: 1
Example 4:
Input: head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0] Output: 18880
Example 5:
Input: head = [0,0] Output: 0
Constraints:
- The Linked List is not empty.
- Number of nodes will not exceed
30
. - Each node's value is either
0
or1
.
Rust Solution
struct Solution;
use rustgym_util::*;
impl Solution {
fn get_decimal_value(head: ListLink) -> i32 {
let mut p: &ListLink = &head;
let mut res = 0;
while let Some(n) = p {
res *= 2;
res += n.val;
p = &n.next;
}
res
}
}
#[test]
fn test() {
let head = list!(1, 0, 1);
assert_eq!(Solution::get_decimal_value(head), 5);
}
Having problems with this solution? Click here to submit an issue on github.