Pre-order traversal visits root node, left subtree, right subtree. >>> list(preorder(make_tree())) [1, 2, 4, 5, 3]
(root: Node | None)
| 31 | |
| 32 | |
| 33 | def preorder(root: Node | None) -> Generator[int]: |
| 34 | """ |
| 35 | Pre-order traversal visits root node, left subtree, right subtree. |
| 36 | >>> list(preorder(make_tree())) |
| 37 | [1, 2, 4, 5, 3] |
| 38 | """ |
| 39 | if not root: |
| 40 | return |
| 41 | yield root.data |
| 42 | yield from preorder(root.left) |
| 43 | yield from preorder(root.right) |
| 44 | |
| 45 | |
| 46 | def postorder(root: Node | None) -> Generator[int]: |