給你乙個單鏈表的引用結點 head。鍊錶中每個結點的值不是 0 就是 1。已知此煉表是乙個整數數字的二進位制表示形式。
請你返回該鍊錶所表示數字的 十進位制值 。
示例 1:
輸入:head = [1,0,1]
輸出:5
解釋:二進位制數 (101) 轉化為十進位制數 (5)
示例 2:
輸入:head = [0]
輸出:0
示例 3:
輸入:head = [1]
輸出:1
示例 4:
輸入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]
輸出:18880
示例 5:
輸入:head = [0,0]
輸出:0
鍊錶不為空。
鍊錶的結點總數不超過 30。
每個結點的值不是 0 就是 1。
二進位制轉為十進位制的時候,先把二進位制從高位(最左邊的「1」)開始按從上到下的順序寫出 ,第一位就是最後的商 「2 2 = 1 餘0 「,餘數肯定是加零。其他位數如果有」1「(原來的餘數),就先乘以」2「再加」1「。
下面就是從第一位開始乘以2加餘數的方法算回去
例如 100101110
1…………0 2+1=1…………餘數為1
0…………1 2+0=2………… 餘數為0
0 …………2 2+0=4 ………… 餘數為0
1 …………4x2+1=9……………… 餘數為1
0…………9x2+0=18 ……………… 餘數為0
1 …………18 2+1=37 …………餘數為1
1…………… 37 2+1=75…………餘數為1
1………………75 2+1=151………… 餘數為1
0………………151 2+0=302 ………… 餘0
所以得到十進位制數302
另:128+0*27+026+1*25+024+1*23+122+1*21+0*2^0=302
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
return sum;}}
;
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
while
(!s.
empty()
)int sum =0;
for(
int i=
0;isize()
;i++
)return sum;}}
;
1290 二進位製煉表轉整數
鏈結 給你乙個單鏈表的引用結點 head。鍊錶中每個結點的值不是 0 就是 1。已知此煉表是乙個整數數字的二進位制表示形式。請你返回該鍊錶所表示數字的 十進位制值 示例1 輸入 head 1,0,1 輸出 5 解釋 二進位制數 101 轉化為十進位制數 5 示例2 輸入 head 0 輸出 0示例3...
1290 二進位製煉表轉整數
給你乙個單鏈表的引用結點 head。鍊錶中每個結點的值不是 0 就是 1。已知此煉表是乙個整數數字的二進位制表示形式。請你返回該鍊錶所表示數字的 十進位制值 輸入 head 1,0,1 輸出 5 解釋 二進位制數 101 轉化為十進位制數 5 示例 2 輸入 head 0 輸出 0 示例 3 輸入 ...
1290 二進位製煉表轉整數
題目描述 給你乙個單鏈表的引用結點 head。鍊錶中每個結點的值不是 0 就是 1。已知此煉表是乙個整數數字的二進位制表示形式。請你返回該鍊錶所表示數字的 十進位制值 示例 1 輸入 head 1,0,1 輸出 5 解釋 二進位制數 101 轉化為十進位制數 5 示例 2 輸入 head 0 輸出 ...