LC 1290.Convert Binary Number in a Linked List to Integer
题目描述
这是 LeetCode
上的 1290.
二进制链表转整数 ,难度为简单。
给你一个单链表的引用结点 head
。链表中每个结点的值不是 0
就是 1。已知此链表是一个整数数字的二进制表示形式。
请你返回该链表所表示数字的 十进制值 。
示例 1:
1 |
|
示例 2:
1 |
|
示例 3:
1 |
|
示例 4:
1 |
|
示例 5:
1 |
|
提示:
- 链表不为空。
- 链表的结点总数不超过
30
。 - 每个结点的值不是
0
就是1
。
解答
方法一:位运算
利用位运算的性质,左移相当于乘以 2
,右边多出来的二进制位自动填零。
1 |
|
时间复杂度:\(O(n)\),其中
n
为链表的长度。空间复杂度:\(O(1)\)。
方法二:模拟
按照题目的要求,每次都乘二再加上下一个数,相当于二进制转换十进制的原理。
1 |
|
时间复杂度:\(O(n)\),其中
n
为链表的长度。空间复杂度:\(O(1)\) 。
每题一图
LC 1290.Convert Binary Number in a Linked List to Integer
https://chen-huaneng.github.io/2023/12/11/2023-12-11-2023-12-11-lc-1290/