用Python制作整数数字的单链表的最佳方法是什么?

问题描述 投票:1回答:1

我在Python中生成一个整数数字的反向单链列表时遇到了问题。我得到的输出完全没有意义。

整数如下。

1000000000000000000000000000466

输出应该是:

[6,6,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]

但相反,它是:

[6,6,2,2,4,4,2,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]

代码片段如下

*sum3是我要转换为列表的整数。

*计数器3是数字的数量。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next

        ret = ListNode( sum3%(10) )
        sum3 = int(sum3/10)
        temp=ret
        for i in range(1,counter3):
            temp.next = ListNode(sum3%(10)) 
            temp = temp.next
            sum3 = int(sum3/10)

        return ret
python python-3.x linked-list singly-linked-list
1个回答
1
投票

你要做的是从整数中提取数字。 将其转换为字符串是这里的解决方案,因为这样你就可以对字符进行迭代。

比如说,

for c in str(12345):
    print(c)

产出

1
2
3
4
5

当然,这将为你产生字符,但你可以很容易地将它们转换回整数。

你还希望你的数字从最小的意义到最大的意义排序。 因此,你需要将列表反过来。

因此,你需要把列表反过来。

ret = [int(c) for c in str(sum3)][::-1]
© www.soinside.com 2019 - 2024. All rights reserved.