编辑代码

//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
class Node {
    constructor(value, ...children) {
        this.value = value
        this.children = children
    }
    *[Symbol.iterator]() {
        const queue = [this]
        while (queue.length) {
            const node = queue.shift()
            yield node.value
            queue.push(...node.children)
        }
    }
}
const root = new Node(1,
    new Node(2),
    new Node(3,
        new Node(4,
            new Node(5,
                new Node(6)
            ),
            new Node(7)
        )
    ),
    new Node(8,
        new Node(9),
        new Node(10)
    )
)
console.log([...root])