python中while i和j/while j和i的不同之处

python中while i和j/while j和i的不同之处,python,data-structures,Python,Data Structures,我在试着做leetcode#83 我不明白的是,以下两种方式有什么区别: while cur and cur.next: while cur.next and cur: 如果我尝试第二种方法,就会出现编译错误。 有人能帮我理解这个概念吗 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # sel

我在试着做leetcode#83 我不明白的是,以下两种方式有什么区别:

    while cur and cur.next:

    while cur.next and cur:
如果我尝试第二种方法,就会出现编译错误。 有人能帮我理解这个概念吗

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

    class Solution(object):
        def deleteDuplicates(self, head):
            """
            :type head: ListNode
    :rtype: ListNode
    """
    cur= head
    while cur and cur.next:
        if cur.val== cur.next.val:
            cur.next= cur.next.next
        else: 
            cur = cur.next

    return(head)
我是数据结构的初学者。
我仍然不明白为什么cur.next是错误的方式。代码cur=head不起作用

它被称为。如果cur为None,解释器甚至不会尝试检查cur.next。

只是给您和读者的一个提示:
None
的比较应该:
而cur不是None,cur.next不是None
。不同意
而cur和cur.next是惯用的。当与
None
进行比较时,PEP8仅表示使用
而不是
=
。它并不坚持一次使用
值不是无
而只是
。我仍然不明白为什么cur.next是错误方式。代码cur=head不起作用?为什么cur是None?@est如果你在一个链表中循环,当你到达末尾时,cur将变成None,因为
cur=cur.next