在Python中将表示二进制数的链接列表转换为十进制整数的程序

假设我们有一个单链表。链表首先以最高有效数字表示二进制数,我们必须将其返回为十进制数。

因此,如果输入类似于[1,0,1,1,0],则输出为22

为了解决这个问题,我们将遵循以下步骤-

  • l:=一个新列表

  • 当节点不为空时,执行

    • 在l的末尾插入节点的值

    • 节点:=节点的下一个

  • k:= 0,v:= 0

  • 对于范围从l-1到0的i,将其减小1,

    • v:= v + 2 ^ k

    • 如果l [i]与1相同,则

    • k:= k + 1

  • 返回v

让我们看下面的实现以更好地理解-

示例

class ListNode:

   def __init__(self, data, next = None):

      self.val = data

      self.next = next

def make_list(elements):

   head = ListNode(elements[0])

   for element in elements[1:]:

      ptr = head

      while ptr.next:

         ptr = ptr.next

         ptr.next = ListNode(element)

   return head

class Solution:

   def solve(self, node):

      l = []

      while node:

         l.append(node.val)

         node=node.next

         k = 0

         v=0

         for i in range(len(l)-1,-1,-1):

            if (l[i]==1):

            v += (2**k)

k+=1

return v

ob = Solution()head = make_list([1,0,1,1,0])

print(ob.solve(head))

输入值

[1,0,1,1,0]

输出结果

22

以上是 在Python中将表示二进制数的链接列表转换为十进制整数的程序 的全部内容, 来源链接: utcz.com/z/359157.html

回到顶部