在python中将链表转换为数字

在python中将链表转换为数字,python,list,numbers,Python,List,Numbers,上面的类是节点定义 class Node(object): def __init__(self,value=None): self.value = value self.next = None 这是将数字转换为链表的代码 比如说, def number_to_list(number): head,tail = None,None p = True for x in str(number): if x=='-':

上面的类是节点定义

class Node(object):
    def __init__(self,value=None):
        self.value = value
        self.next = None
这是将数字转换为链表的代码 比如说,

def number_to_list(number):
    head,tail = None,None
    p = True
    for x in str(number):
        if x=='-':
           p = False
           continue
        else:
          if p:
             node = Node(int(x))
          else:
             node = Node(int("-"+x))
        if head:
           tail.next = node
        else:
            head = node
        tail = node
    return head
    pass
 def list_to_number(head)
 pass
但是,我应该如何从链表转换为数字

 assert [1,2,0] == number_to_list(120)
 assert [0] == number_to_list(0)
 assert [-1, -2, 0] == number_to_list(-120)
比如说,

def number_to_list(number):
    head,tail = None,None
    p = True
    for x in str(number):
        if x=='-':
           p = False
           continue
        else:
          if p:
             node = Node(int(x))
          else:
             node = Node(int("-"+x))
        if head:
           tail.next = node
        else:
            head = node
        tail = node
    return head
    pass
 def list_to_number(head)
 pass

我从过去3天开始尝试,但没有遇到任何解决方案。请帮助我解决此问题。

假设列表至少包含一个数字,则返回负数

 assert 120 == list_to_number([1,2,0])
 assert -120 == list_to_number([-1,-2,0])
希望这很容易理解

编辑


我从您的评论中了解到,您有一个linkedlist设置,而不是列表。这不应该是个问题,逻辑应该保持不变。唯一能改变的是你的迭代方式,我不能给出代码,因为那将是你的家庭作业。

为了多样性,另一种解决方案:

def list_to_number(somelist):
    neg=False
    num = ''
    for number in somelist:
        val = str(number)
        if (val.find('-')!= -1):
            neg = True
        num=num+val.replace('-','')
    if (neg==False):
        return int(num)
    else:
        return -1*int(num)
def列表到编号(a列表):
a=''.join(str(abs(i))表示a_列表中的i)
如果有(列表中的n小于0):
a='-%s'%a
返回整数(a)

如果输入是
[-1,2,-3]
?那么答案应该是-123@thefourye如何确定一个数字是否为负数,具体来说,
列出的数字([1,2,-1])返回什么?
代码不会检查该类型的输入,它只检查完整列表是负数还是正数,如果是负数,则给出负数,否则给出正数@adeeb什么意思:完整列表是负数?你的意思是你可以在列表中找到一个或多个负数吗?但是它给出了错误TypeError:“Node”对象不可编辑,请帮助我解决这个问题。你的例子,
assert-120==list\u to\u number([-1,-2,0])
说你需要这个方法来接受列表。为什么要给它一个节点对象?在这里,首先,我在同一个赋值中使用节点对象创建了列表,但我必须将链表转换为nummber,所以出现了错误@AdeebI我不确定我是否遵循,但你是说你的列表不包含数字,而是节点?如果是这样,那就不应该是问题了。我不能告诉你怎么做,因为你不会学到任何东西,但是,我会让你根据情况修改代码(作为测试你是否理解它的一种方式),我尝试过,但我没有得到答案,你能给我一个提示吗@Adeeb