pygorithm/interview/iter_tree.py

28 lines
737 B
Python
Raw Normal View History

2023-12-04 12:48:44 +08:00
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