为什么在while循环的条件下出现“属性错误”?但是while循环中的if语句不是吗?

时间:2019-08-13 22:54:17

标签: python-3.x if-statement while-loop

我正在编写一种算法,以合并leetcode中的两个排序列表。我注意到while循环和最外面的if语句抛出条件

属性错误:“非类型”对象没有属性“ val”

我知道此代码未正确实现,无法合并两个排序列表

在删除while条件语句和最外面的if语句中的所有'.val'方法之后,它可以正常编译。那么为什么while循环中if语句中的条件语句没有“属性错误”的问题?

我知道此代码未正确实现,无法合并两个排序列表

class ListNode:
     def __init__(self, x):
         self.val = x
         self.next = None

class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        result = []
        while l1.val != None and l2.val != None:
            if l1.val >= l2.val:
                result.append(l2.val)
                l2 = l2.next
            else:
                result.append(l1.val)
                l1 = l1.next
        if l1.val != None:
            while l1.val != None:
                result.append(l1.val)
                l1 = l1.next
        else:
            while l2.val != None:
                result.append(l2.val)
                l2 = l2.next
        return result

0 个答案:

没有答案