1290. Convert Binary Number in a Linked List to Integer*

1290. Convert Binary Number in a Linked List to Integer*

https://leetcode.com/problems/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 or 1.

C++ 实现 1

代码中 res << 1 表示 res * 2.

class Solution {
public:
    int getDecimalValue(ListNode* head) {
        if (!head) return 0;
        auto p = head;
        int res = 0;
        while (p) {
            res = (res << 1) + p->val;
            p = p->next;
        }
        return res;
    }
};
发布了455 篇原创文章 · 获赞 8 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Eric_1993/article/details/104891621
今日推荐