leetcode问题,在testcode上工作,但标记为错误

2024-04-20 03:50:30 发布

您现在位置:Python中文网/ 问答频道 /正文

原来的问题是: https://leetcode.com/problems/add-two-numbers/

我的解决方案被标记为错误,但它在测试用例上工作,我不明白为什么。 你能看看吗。你知道吗

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        ln = ListNode(0)

        lll= ln
        val=0
        carry=0
        while l1 or l2:

            if l1 and l2:
                val, carry = (l1.val+l2.val+carry)%10, (l1.val+l2.val+carry)/10
                l1=l1.next
                l2=l2.next

            elif l2:
                val, carry = l2.val%10, 0
                l2=l2.next
            elif l1:
                val, carry = l1.val%10, l1.val/10
                l1=l1.next
            ln.val=val
            if l1 or l2 or carry>0:
                ln.next=ListNode(0)

            ln=ln.next


        return(lll)

Tags: orhttpscoml1iftypevalnext
1条回答
网友
1楼 · 发布于 2024-04-20 03:50:30
  1. 当其中一个列表结束时,不能将进位添加到case的值中。 例如:
    [9,2]
    [1]
    这里,在加1和9之后,值是0,进位是1。现在,l2终止,所以在l1的循环中,需要将进位添加到值val=(l1.val+carry)%10
  2. 此外,需要添加l1l2终止的情况。例如:
    [9,9]
    [1]
    在这里,添加之后我们得到[0,0],但是这两个l1,l2都终止了,因此需要在while循环之后创建一个带有进位的新节点。你知道吗

相关问题 更多 >