保留两个变量,一个用于遍历路径,另一个用于访问的节点,可以解决这个问题。另外,由于遍历应该是这个程序的输出,所以不应该从遍历路径中弹出任何内容。
def gen():
pathLen = len(path)
nextNode = path[pathLen - 1]
while len(list_moves(nextNode)) < 1:
pathLen -= 1
nextNode = path[pathLen-1]
path.append(nextNode)
next_visit = random.choice(list_moves(path[len(path) - 1]))
visited.append(next_visit)
path.append(next_visit)