2. 两数相加

作者: cptn3m0 | 来源:发表于2019-03-15 21:09 被阅读0次

代码缺点

虽然效率不低, 但是可读性不好, 过于繁琐, 属于笨蛋代码, 需要简化.

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

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        
        dummy_head = ListNode(0)
        dummy_list = dummy_head
        if l1 is None and l2 is None:
          return None
        elif l1 is None:
          return l2
        elif l2 is None:
          return l1
        
        carry = 0
        
        while l1 is not None and l2 is not None:
          my_val = l1.val+l2.val+carry
          carry = my_val//10
          my_val = my_val %10
          node = ListNode(my_val)
          l1 = l1.next
          l2 = l2.next
          dummy_list.next = node
          dummy_list = dummy_list.next
          
        while l1 is not None:
          my_val = l1.val+carry
          carry = my_val//10
          my_val = my_val%10
          node = ListNode(my_val)
          l1 = l1.next
          dummy_list.next = node
          dummy_list = dummy_list.next
          
        while l2 is not None:
          my_val = l2.val+carry
          carry = my_val//10
          my_val = my_val%10
          node = ListNode(my_val)
          l2 = l2.next
          dummy_list.next = node
          dummy_list = dummy_list.next
          
          
        if carry > 0:
          node = ListNode(carry)
          dummy_list.next = node
        
        return dummy_head.next
        

相关文章

  • 2. 两数相加

    给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表...

  • 2. 两数相加

  • 2. 两数相加

    一、题目原型: 给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加...

  • 2. 两数相加

    题目 解析 本题只需要遍历一下单链表,将单链表的值添加到StringBuilder对象后然后转化成数字进行运算再反...

  • 2.两数相加

    题目 思路1.记录返回结构体2.两个结构体的两位数相加,记录进位3.位移结构体,赋值代码

  • 2. 两数相加

    https://leetcode-cn.com/problems/add-two-numbers/descript...

  • 2. 两数相加

    补充:我们现在的这种第一个节点是头节点。所以要 root.next如果我的 不想用这种方式 会遇到这样的问题。

  • 2. 两数相加

    链接:https://leetcode-cn.com/problems/add-two-numbers/ 代码地址...

  • 2.两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只...

  • 2. 两数相加

    题目 分析 解题方案: 初等数学 我们使用变量来跟踪进位,并从包含最低有效位的表头开始模拟逐位相加的过程。 就像你...

网友评论

    本文标题:2. 两数相加

    本文链接:https://www.haomeiwen.com/subject/xthdmqtx.html