线
if self.pair[v] and self.dfs(v):
应该
if self.pair[v] is None and self.dfs(v):
按照Wikipedia页面上的伪代码。我看到的唯一另一个问题是,您将双端队列用作堆栈,并且希望将其用作队列。为了解决这个问题,您只需要向左弹出而不是弹出(向右弹出)即可。所以线
v = self.q.pop()
应该
v = self.q.popleft()
希望其他所有东西都可以。我只是在检查您的Python代码是否与Wikipedia上的伪代码相同,因此希望该伪代码是正确的。



