1. 二進制鏈表轉整數(10進制)
public class GetDecimalValue1290 {
//定義一個單鏈表
public class ListNode {
int val; //當前節點值
ListNode next; //下一個節點值
//構造方法 初始化當前節點值
ListNode(int x) { val = x; }
}
//方法1:數學思想(累加) 時間複雜度 O(n)
public int getDecimalValue01(ListNode head) {
int sum = 0;
while(head!=null){
sum = sum*2 + head.val;
head = head.next;
}
return sum;
}
//方法2:位運算 時間複雜度 O(n)
public int getDecimalValue(ListNode head) {
ListNode cur = head;
int sum = 0;
while (cur != null) {
sum <<= 1;
sum += cur.val;
cur = cur.next;
}
return sum;
}
}