1290. Convert Binary Number in a Linked List to Integer

Difficulty:
Related Topics:
Similar Questions:

    Problem

    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.

    The most significant bit is at the head of 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
    

      Constraints:

    Solution (Java)

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode() {}
     *     ListNode(int val) { this.val = val; }
     *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
     * }
     */
    class Solution {
        public int getDecimalValue(ListNode head) {
            int l = 0;
            ListNode curr = head;
            while (curr.next != null) {
                l++;
                curr = curr.next;
            }
            curr = head;
            int num = 0;
            while (curr != null) {
                num += curr.val * (int) Math.pow(2, l--);
                curr = curr.next;
            }
            return num;
        }
    }
    

    Explain:

    nope.

    Complexity: