Python 如何从数字';s数字?
我定义了一个类来创建一个链表,如下所示:Python 如何从数字';s数字?,python,linked-list,singly-linked-list,Python,Linked List,Singly Linked List,我定义了一个类来创建一个链表,如下所示: class ListNode(object): def __init__(self, x): self.val = x self.next = None 现在,我已经生成了一个数字“sum”,并编写了以下代码来生成链表:(假设sum可能有3或4位数字) 有没有一种方法可以使用数字“sum”的长度生成上述内容,而不必像上面那样进行硬编码?您可以这样做: s = str(975) start_node = node
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None
现在,我已经生成了一个数字“sum”,并编写了以下代码来生成链表:(假设sum可能有3或4位数字)
有没有一种方法可以使用数字“sum”的长度生成上述内容,而不必像上面那样进行硬编码?您可以这样做:
s = str(975)
start_node = node = ListNode(s[-1]) # initialize to last character in s
for c in reversed(s[:-1]):
node.next = ListNode(c)
node = node.next
start\u节点
现在应该包含第一个节点;从那里可以.next
到下一个节点<代码>节点始终指向循环中的当前节点(可以在循环后丢弃)
请注意,这是一个内置函数,因此不是一个好的变量名
上述代码的输出:
print(start_node.val) # 5
print(start_node.next.val) # 7
print(start_node.next.next.val) # 9
print(start_node.next.next.next) # None
您甚至可以将上面的代码编写得更紧凑(但在imo中可读性要差得多):
我将更改变量名“sum”。解决方案有效!谢谢
print(start_node.val) # 5
print(start_node.next.val) # 7
print(start_node.next.next.val) # 9
print(start_node.next.next.next) # None
start_node = node = ListNode(s[-1])
for c in reversed(s[:-1]):
node.next = node = ListNode(c)