用 Python 将表示二进制数的链表转换为十进制整数的程序
pythonserver side programmingprogramming更新于 2026/1/10 19:24:17
假设我们有一个单链表。链接列表表示一个二进制数,其中最高有效位在前,我们必须将其返回为十进制数。
因此,如果输入为 [1,0,1,1,0],则输出为 22
要解决这个问题,我们将遵循以下步骤 −
- l := a new list
- 当节点不为空时,执行
- 在 l 的末尾插入节点的值
- 节点:= 下一个节点
- k := 0, v:= 0
- 对于 i 在 l - 1 到 0 的范围内,减少 1,执行
- 如果 l[i] 与 1 相同,则
- v := v + 2^k
- k := k + 1
- 如果 l[i] 与 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 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

