Python3 None !=空

 1.d=deque([None])

d=deque([None])
while(d):
    print(d)

执行结果:

 没想到吧!系统其实給入了一个[None],并且while判定了d为非空,因此这里我们看到了无限循环的输出;

2.d=deque([])

d=deque([])
while(d):
    print(d)

这里while判定了d为空,因此没有任何输出。

结论:

可见,我们在判定条件的正确与否,知道了None != 空

灵感来自于力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/binary-tree-level-order-traversal/

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
        if(root is None): return [] 
#没有这行语句,就会对None的情况判断失误,因为while循环会认为deque([None])正确,并且步入循环,造成程序致命的错误
        q=deque([root])
        ans=[]

        while(q):
            n=len(q)
            queue=[]
            for i in range(n):
                _=q.popleft()
                queue.append(_.val)
                if(_.left): q.append(_.left)
                if(_.right): q.append(_.right)
            ans.append(queue)

        return ans

先前提到的是队列中是否含元素!

3.现在来个常规的

root=None
if(root):
    print(root)

if([]):
    print([])

结果是都没有输出,所以,对于队列中的元素存在与否,我们的判断需要谨慎呀!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值