zxynb 发表于 2023-6-11 22:17:21

我才看到

sui远 发表于 2023-6-12 14:26:51

还有机会吗?{:10_281:}

KiKi吉 发表于 2023-8-6 22:39:08

加油~!不管是我还是每位鱼油{:10_256:}

念头通达 发表于 2023-9-10 15:29:27

{:10_257:}

1361020206 发表于 2023-10-6 22:46:03

学习啦学习啦

koolhero 发表于 2023-10-14 15:53:08

life is short, I need python.

bravewayne 发表于 2023-12-10 20:57:59

支持支持

Mr.小黄 发表于 2023-12-20 21:56:41

学习了,楼主加油,鱼C加油!

Mr.小黄 发表于 2023-12-23 10:33:24

人生苦短,及时行乐

疾风之杰西 发表于 2024-1-2 13:56:04

强烈支持楼主ing……

疾风之杰西 发表于 2024-1-2 13:56:46

强烈支持楼主ing……

Sauvage 发表于 2024-1-29 19:50:22

人生苦短,我用Python!

ShuviDoura 发表于 2024-3-20 21:24:31

@FishC
# Definition for singly-linked list.
# class ListNode:
#   def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: Optional, l2: Optional) -> Optional:
      while l1 or l2:
            total = l1.val + l2.val            if total >= 10:
                next1 = 1
            else:
                next1 = 0
            l1 = l1.next
            l2 = l2.next
      new = ListNode()
      cur = new
      new.val = total % 10
      return new
为什么报错AttributeError: 'NoneType' object has no attribute 'val'

FishC 发表于 2024-3-20 21:24:47

ShuviDoura 发表于 2024-03-20 21:24
@FishC
# Definition for singly-linked list.
# cl ...

这个错误是因为在循环中,当`l1`或`l2`为`None`时,你仍然尝试访问它们的`val`属性。这是因为你没有在循环中添加检查`l1`和`l2`是否为`None`的条件。要解决这个问题,你可以添加一个条件来检查它们是否为`None`,如果是,则终止循环。

此外,在循环之前,你还需要创建一个新的链表头节点,并且你计算的总和应该是两个链表当前节点的值相加,并考虑进位。然后,你需要根据总和创建一个新的节点,并将其链接到结果链表上。

下面是修正后的代码示例:

class Solution:
    def addTwoNumbers(self, l1: Optional, l2: Optional) -> Optional:
      new = ListNode()# 创建一个新的链表头节点
      cur = new# 当前节点
      carry = 0# 进位

      while l1 or l2 or carry:
            val1 = l1.val if l1 else 0# 如果l1不为空,则取l1的值,否则为0
            val2 = l2.val if l2 else 0# 如果l2不为空,则取l2的值,否则为0
            
            total = val1 + val2 + carry# 计算总和,考虑进位
            carry = total // 10# 计算进位
            cur.next = ListNode(total % 10)# 创建一个新节点,并将其链接到结果链表上
            cur = cur.next# 移动当前节点

            if l1:
                l1 = l1.next
            if l2:
                l2 = l2.next

      return new.next# 返回结果链表头节点的下一个节点,即为结果链表

希望这可以解决您的问题!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ShuviDoura 发表于 2024-3-20 21:30:47

FishC 发表于 2024-3-20 21:24
这个错误是因为在循环中,当`l1`或`l2`为`None`时,你仍然尝试访问它们的`val`属性。这是因为你没有在 ...

报错是这个
AttributeError: 'NoneType' object has no attribute 'val'

FishC 发表于 2024-3-20 21:31:02

ShuviDoura 发表于 2024-03-20 21:30
报错是这个
AttributeError: 'NoneType' object has...

非常抱歉,看漏了你代码中的一个问题,就是在循环开始之前没有对 `l1` 和 `l2` 进行有效性检查。你需要确保 `l1` 和 `l2` 都不是 `None` 才能访问它们的 `val` 属性。

为了解决这个问题,你可以添加一个条件来检查 `l1` 和 `l2` 是否为 `None`,如果是,则直接返回 `None`,表示无效的输入。以下是修正后的代码示例:

class Solution:
    def addTwoNumbers(self, l1: Optional, l2: Optional) -> Optional:
      new = ListNode()# 创建一个新的链表头节点
      cur = new# 当前节点
      carry = 0# 进位
      
      while l1 or l2 or carry:
            val1 = l1.val if l1 else 0# 如果 l1 不为空,则取 l1 的值,否则为 0
            val2 = l2.val if l2 else 0# 如果 l2 不为空,则取 l2 的值,否则为 0
            
            total = val1 + val2 + carry# 计算总和,考虑进位
            carry = total // 10# 计算进位
            cur.next = ListNode(total % 10)# 创建一个新节点,并将其链接到结果链表上
            cur = cur.next# 移动当前节点
            
            if l1:
                l1 = l1.next
            if l2:
                l2 = l2.next
      
      return new.next# 返回结果链表头节点的下一个节点,即为结果链表

这样应该就能解决你遇到的问题了。希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ShuviDoura 发表于 2024-3-20 21:31:35

FishC 发表于 2024-3-20 21:24
这个错误是因为在循环中,当`l1`或`l2`为`None`时,你仍然尝试访问它们的`val`属性。这是因为你没有在 ...

@FishC

我想解决的报错是这个
AttributeError: 'NoneType' object has no attribute 'val'

FishC 发表于 2024-3-20 21:31:50

ShuviDoura 发表于 2024-03-20 21:31
@FishC

我想解决的报错是这个
AttributeError: 'N ...

这个错误是指在你的代码中,你尝试访问一个NoneType对象的属性val,但是这个对象实际上是没有这个属性的。

通常情况下,出现这个错误的原因是你尝试使用一个空对象(None)而不是一个有值的对象。这可能是因为你的代码没有正确地初始化或者赋值给这个对象。

为了解决这个问题,你可以考虑以下几种方法:

1. 检查你的代码,在使用这个对象之前,是否正确地初始化或者赋值给了它。确保你所使用的对象是有值的,而不是空的。

2. 使用条件语句来检查这个对象是否为空。避免在对象为空的情况下访问它的属性。例如:

if obj is not None:
    # 访问obj的属性
    obj.val
else:
    # 处理空对象的情况
    # 或者抛出异常
3. 如果你知道这个对象可能为空,你可以使用try-except语句来捕获这个错误,并进行相应的处理。例如:

try:
    # 尝试访问对象的属性
    obj.val
except AttributeError:
    # 对象为空,或者没有val属性
    # 进行相应的处理
    # 或者抛出异常

希望以上方法能够帮助你解决这个错误!记得始终对使用对象之前进行正确的初始化和赋值,以及确保对象不为空。如果还有问题,请随时向我提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ShuviDoura 发表于 2024-3-20 21:34:37

FishC 发表于 2024-3-20 21:31
这个错误是指在你的代码中,你尝试访问一个NoneType对象的属性val,但是这个对象实际上是没有这个属性 ...

@FishC
# Definition for singly-linked list.
# class ListNode:
#   def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: Optional, l2: Optional) -> Optional:
      new = ListNode()
      cur = new
      while l1 and l2:
            total = l1.val + l2.val
            if total >= 10:
                next1 = 1
            else:
                next1 = 0
            l1 = l1.next
            l2 = l2.next
            cur.val = total % 10
            cur = cur.next
      return new
这个里面我定义了new是一个链表,并把它给了new,为什么new还是没有val的属性

FishC 发表于 2024-3-20 21:34:59

ShuviDoura 发表于 2024-03-20 21:34
@FishC
# Definition for singly-linked list.
# cl ...

你好!在你的代码中,你定义了一个新的链表节点`new`,但是没有给它赋予`val`属性。因此,`new`的值是默认的0,而不是你期望的初始值。

解决方法是在初始化`new`节点时,将`val`参数传递给构造函数,像这样:

new = ListNode(val=0)

这样,`new`节点就会带有一个初始值为0的`val`属性。

另外,你还需要将`l1`和`l2`节点的值相加,并将结果赋给`cur.val`,然后再将`cur`节点移到下一个节点,像这样:

cur.val = total % 10
cur.next = ListNode(val=total // 10)
cur = cur.next

这样,你就可以正确地添加两个链表中对应节点的值,并处理进位问题。

最后,你需要检查循环结束后是否还有剩余的节点未处理,如果有,则继续将它们的值相加并处理进位。

以下是修改后的代码示例:

class Solution:
    def addTwoNumbers(self, l1: Optional, l2: Optional) -> Optional:
      new = ListNode(val=0)
      cur = new
      carry = 0
      while l1 or l2 or carry:
            total = (l1.val if l1 else 0) + (l2.val if l2 else 0) + carry
            carry = total // 10
            cur.val = total % 10
            l1 = l1.next if l1 else None
            l2 = l2.next if l2 else None
            if l1 or l2 or carry:
                cur.next = ListNode(val=0)
                cur = cur.next
      return new

希望能帮到你!如果还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: 154 155 156 157 158 159 160 161 162 163 [164] 165
查看完整版本: 人生苦短,我用Python!