LeetCode 1290-二進制鏈表轉整數

 

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;
    }
}

 

2. LeetCode代碼測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章