位运算很快
func getDecimalValue(head *ListNode) int {
/*
numlist := make([]int,0) //注意这里参数为0,即空的数组。否则为n个0
count := 1
p := head
for p.Next!=nil{
numlist = append(numlist, p.Val) //低index是数字的高位
count++
p = p.Next
}
numlist = append(numlist, p.Val)
if count == 1{
return numlist[0]
}
res := 0
for i:=0; i<count;i++{
res = res+numlist[count-i-1]*f(i)
}
return res*/
res := 0
for head!=nil{
res<<=1
res|=head.Val
head = head.Next
}
return res
}
/*
func f(n int)int{ //2的n次方
res := 1
for i:=0;i<n;i++{
res = res*2
}
return res
}*/