class Node: def __init__(self, value: int, children=None): self.value = value self.children = children nodes1 = Node(1, [Node(2, [Node(4), Node(5)]), Node(3, [Node(6), Node(7)])]) nodes2 = Node(1, [Node(2, [Node(4), Node(5), Node(10, [Node(19), Node(39), Node(27)])]), Node(3, [Node(6), Node(7)])]) def iter_tree(node: Node): res = [node.value] def recursive(nodes: list[Node], temp_res: list[int]): temp = [] for _node in nodes: temp_res.append(_node.value) if _node.children: temp.extend(_node.children) if len(temp) > 0: recursive(temp, temp_res) if node.children: recursive(node.children, res) return res