python将数字以二进制输出_在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值