算法简单题-栈与队列

我想请问一下,在用两个栈实现队列题目中,以下代码哪里出了问题?以下是问题描述和代码
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
示例:
输入:
["CQueue","appendTail","deleteHead","deleteHead","deleteHead"]
[[],[3],[],[],[]]
输出:[null,null,3,-1,-1]
(源自:https://leetcode.cn/leetbook/read/illustration-of-algorithm/5d3i87/

class CQueue(object):

    def __init__(self) -> None:
        """构造方法"""
        self.__stackA = [] # 插入栈
        self.__stackB = [] # 推出栈

    def appendTail(self, val: int) -> None:
        self.__stackA.append(val)
    
    def deleteHead(self) -> int:
        if self.__stackB == 0:
            if self.__stackA == 0:
                return -1
            else:
                self.__stackB.append(self.__stackA.pop())
                return self.__stackB.pop()
        else:
            return self.__stackB.pop()

在代码中,判断栈是否为空的语句应该使用 if not self.__stackAif not self.__stackB,而不是 if self.__stackA == 0if self.__stackB == 0。因为栈是一个列表,当它为空时,它的布尔值为 False,不为空时为 True。另外,在 deleteHead 方法中,当 self.__stackB 不为空时,应该直接返回 self.__stackB.pop(),而不是先将它的值赋给一个变量再返回。修改后的代码如下:

class CQueue(object):
 
    def __init__(self) -> None:
        """构造方法"""
        self.__stackA = [] # 插入栈
        self.__stackB = [] # 推出栈
 
    def appendTail(self, val: int) -> None:
        self.__stackA.append(val)
    
    def deleteHead(self) -> int:
        if not self.__stackB:
            if not self.__stackA:
                return -1
            else:
                while self.__stackA:
                    self.__stackB.append(self.__stackA.pop())
                return self.__stackB.pop()
        else:
            return self.__stackB.pop()