2020-03-17
1.题目描述
二进制链表转整数
2.题解
乘2使用位操作
3.代码
#include <iostream>
#include <algorithm>
using namespace std;
// Definition for singly-linked list.
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
int getDecimalValue(ListNode* head) {
ListNode* p=head;
int res=0;
while (p!=NULL){
res=(res<<1)+p->val;
p=p->next;
}
return res;
}
};
int main(){
Solution s;
ListNode* head=NULL, *p,*q;
int i;
p=(ListNode*)malloc(sizeof(ListNode));
p->val=1;
p->next=NULL;
head=p;
q=p;
p=(ListNode*)malloc(sizeof(ListNode));
p->val=0;
q->next=p;
p->next=NULL;
q=p;
p=(ListNode*)malloc(sizeof(ListNode));
p->val=1;
q->next=p;
p->next=NULL;
cout<<s.getDecimalValue(head)<<endl;
return 0;
}