网站制公司,苏州市建设局招标网站首页,asp网站 上传空间,搜索引擎简称seo给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。
请你返回该链表所表示数字的 十进制值 。
示例 1#xff1a; 输入#xff1a;head [1,0,1]
输出#xff1a;5
解释#xff1a;二进制数 (101) 转化为十进…给你一个单链表的引用结点 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
代码如下
//方法一
class Solution {
public:int getDecimalValue(ListNode* head) {int res0;ListNode* currhead;ListNode* prevnullptr;while(curr!nullptr)//反转链表{ListNode* tempcurr-next;curr-nextprev;prevcurr;currtemp;}int t1;//2^01currprev;//反转之后的链表链表的头部指向prev,此时让prev指向curr,链表头部为currwhile(curr!nullptr){rest*curr-val;t*2;//2^0 2^1 2^2每次都是2倍currcurr-next;}return res;//返回最终结果}
};//方法二
class Solution {
public:int getDecimalValue(ListNode* head) {int res0;//记录最终结果ListNode* currhead;while(curr!nullptr){resres*2curr-val;//就相当于十进制数52652*106此时是二进制数currcurr-next;}return res;}
};