TypeError:无法解压不可迭代的 TreeNode 对象

问题描述 投票:0回答:1

我正在学习使用双端队列来检查两个二叉树是否相同。但是,我不明白为什么n1和n2(作为node1和node2)无法解压。我尝试将它们放入列表和元组中,解包等,但无法成功解包。我想这是别的事。有人可以帮忙吗?这是代码:

    def iterative(self, p, q):
        q = deque( [p, q] )
        while len(q) > 0:
            n1, n2 = q.popleft()
            if not n1 and not n2:    pass
            elif not n1  or not n2:  return False
            else:
                if n1.val != n2.val: return False
                q.append( [n1.left, n2.left] )
                q.append( [n1.right, n2.right] )
        return True
python python-3.x tree queue binary-tree
1个回答
0
投票

问题在于如何初始化双端队列。构造函数需要一个条目序列,并且当您希望条目成为一对时,您需要提供一系列对。但是,您提供了一个包含两个条目的列表,这意味着您的双端队列将以两个条目开头,每个条目都是单个节点而不是一对。

更改此:

q = deque( [p, q] )    

对此:

q = deque( [[p, q]] )
© www.soinside.com 2019 - 2024. All rights reserved.