測試面試LeetCode系列:二進制鏈表轉整數

題目

給你一個單鏈表的引用結點 head。鏈表中每一個結點的值不是 0 就是 1。已知此鏈表是一個整數數字的二進制表示形式。 html

請你返回該鏈表所表示數字的 十進制值 。數組


示例 1:網絡


輸入:head = [1,0,1]app

輸出:5ide

解釋:二進制數 (101) 轉化爲十進制數 (5)測試

示例 2:url


輸入:head = [0]spa

輸出:0.net

示例 3:指針


輸入:head = [1]

輸出:1

示例 4:


輸入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]

輸出:18880

示例 5:


輸入:head = [0,0]

輸出:0



提示:


鏈表不爲空。

鏈表的結點總數不超過 30。

每一個結點的值不是 0 就是 1。


來源:力扣(LeetCode)

連接:https://leetcode-cn.com/problems/convert-binary-number-in-a-linked-list-to-integer

著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。

思路

head是單鏈表頭指針,經過循環頭指針能夠將數組元素最後拼接成一個二進制數。而後將該二進制數轉換成十進制數。 

# Definition for singly-linked list.# class ListNode(object):#     def __init__(self, x):#         self.val = x#         self.next = None
 class Solution(object):
    def getDecimalValue(self, head):
        """
        :type head: ListNode
        :rtype: int
        """
        numlist = []
        oct = 0
        while head.next != None:
            numlist.append(head.val)
            head = head.next
        numlist.append(head.val)        for i in range(len(numlist)-1,-1,-1):            #print pow(2,i)
            oct += pow(2,i) * numlist[len(numlist)-i-1]        return oct

各位大神,有其餘思路歡迎留言~

博主:測試生財

座右銘:專一測試與自動化,致力提升研發效能;經過測試精進完成原始積累,經過讀書理財奔向財務自由。

csdn:https://blog.csdn.net/ccgshigao

博客園:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

相關文章
相關標籤/搜索