在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