题目描述:
解题思路一:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
int getDecimalValue(struct ListNode* head){
struct ListNode *p=head;
int map[30]={0};//如果不初始化,会造成后面的空区域的值随机
int i=0;
int sum=0;
int n=0;
int power=1;
int j=0;
while(p!=NULL){
map[i]=p->val;
p=p->next;
i++;
}
for(int k=i-1;k>=0;k--){
n=j;
j++;
if(n==0)
power=1;
else{
while(n){
power=power*2;
n--;
}
}
sum=sum+map[k]*power;
}
return sum;
}
评价:傻逼想法,还一直通不过,找不到错误。以后来看看吧
解题思路二:
int getDecimalValue(struct ListNode* head){
int sum = 0;
while(head!=NULL){
sum = sum*2 + head->val;
head = head->next;
}
return sum;
}
评价:这个原理是什么,反着来也可以。我还是太菜了,又参考了别人的!