给定一个以嵌套列表形式表示的树,我如何优先遍历它?

Given a tree represented in the form of nested lists, how do I traverse it breadth first?

假设我有一个在嵌套列表表示中给出的树,我如何优先遍历它?例如,如果我得到

[1, [2, [3, [4, [3, 5]]]], [3, [4, 5, 2]]]

输出将是 [1,2,3,3,4,4,5,2,3,5] 另外,给定深度优先顺序的扁平表示,如 [1,2,3,4,3,5,3,4,5,2],我如何找到宽度优先顺序的索引? 在此先感谢您的帮助。

这是 Python 中的代码:

queue = [1, [2, [3, [4, [3, 5]]]], [3, [4, 5, 2]]]

while queue:
    firstItem = queue.pop(0)
    if type(firstItem) is list:
        for item in firstItem:
            queue.append(item)
    else:
        print('Traversed %d' % (firstItem))

输出为:

Traversed 1
Traversed 2
Traversed 3
Traversed 3
Traversed 4
Traversed 5
Traversed 2
Traversed 4
Traversed 3
Traversed 5

在研究了我的输出以及你指定的输出应该在你的问题中之后,我认为我的输出更正确。更具体地说,输入列表中最左边的 3 和输入列表末尾的 [4, 5, 2] 在同一个 "level" 上,因此应该遍历 3, 4, 5, 2,如从我的输出的第 4 行到第 7 行显示。


关于你的第二个问题,我认为你应该单独提出一个问题,因为它确实是一个完全不同的问题。