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

What is the best way to make a singly linked list of integer digits in Python?

我在生成 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 是我要转换为列表的整数

*counter3为位数

# 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

您要做的是从整数中提取数字。将其转换为字符串是此处的解决方案,因为这样您就可以遍历字符。

例如,

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

产出

1
2
3
4
5

当然,这会为您生成字符,但您可以轻松地将它们转换回整数。

您还希望您的数字从最低位到最高位排序。因此,您需要反转列表。

所以,

ret = [int(c) for c in str(sum3)][::-1]