本文共 1338 字,大约阅读时间需要 4 分钟。
为了解决将两个由节点组成的链表相加并返回结果链表的问题,我们可以按照以下步骤进行:
class ListNode(object): def __init__(self, x): self.val = x self.next = Noneclass Solution(object): def addTwoNumbers(self, l1, l2): n1 = self.obj2num(l1) n2 = self.obj2num(l2) sum_num = n1 + n2 return self.num2obj(sum_num) def obj2num(self, obj): num = 0 current = obj while current: num = num * 10 + current.val current = current.next return num def num2obj(self, num): if num == 0: return None # 返回一个空链表,表示0 num_str = str(num) first_node = ListNode(int(num_str[0])) last_node = first_node for i in range(1, len(num_str)): current_num = int(num_str[i]) current_node = ListNode(current_num) last_node.next = current_node last_node = current_node return first_node
addTwoNumbers方法:将两个链表转换为整数相加,然后将结果转换回链表。obj2num方法:将链表转换为整数。通过遍历链表,逐个读取节点的值,按顺序组合成一个整数。num2obj方法:将整数转换为链表。通过将整数转换为字符串,逐个读取每个字符,创建对应的节点,并按顺序连接起来。这种方法确保了我们能够正确地将两个链表相加,并以链表的形式返回结果。
转载地址:http://baqfk.baihongyu.com/