python中while i和j/while j和i的不同之处
我在试着做leetcode#83 我不明白的是,以下两种方式有什么区别: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
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
。