MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / pre_order_iter

Function pre_order_iter

searches/binary_tree_traversal.py:172–199  ·  view source on GitHub ↗

>>> root = TreeNode(1) >>> tree_node2 = TreeNode(2) >>> tree_node3 = TreeNode(3) >>> tree_node4 = TreeNode(4) >>> tree_node5 = TreeNode(5) >>> tree_node6 = TreeNode(6) >>> tree_node7 = TreeNode(7) >>> root.left, root.right = tree_node2, tree_node3 >>> tree_node2.

(node: TreeNode)

Source from the content-addressed store, hash-verified

170
171# iteration version
172def pre_order_iter(node: TreeNode) -> None:
173 """
174 >>> root = TreeNode(1)
175 >>> tree_node2 = TreeNode(2)
176 >>> tree_node3 = TreeNode(3)
177 >>> tree_node4 = TreeNode(4)
178 >>> tree_node5 = TreeNode(5)
179 >>> tree_node6 = TreeNode(6)
180 >>> tree_node7 = TreeNode(7)
181 >>> root.left, root.right = tree_node2, tree_node3
182 >>> tree_node2.left, tree_node2.right = tree_node4 , tree_node5
183 >>> tree_node3.left, tree_node3.right = tree_node6 , tree_node7
184 >>> pre_order_iter(root)
185 1,2,4,5,3,6,7,
186 """
187 if not isinstance(node, TreeNode) or not node:
188 return
189 stack: list[TreeNode] = []
190 n = node
191 while n or stack:
192 while n: # start from root node, find its left child
193 print(n.data, end=",")
194 stack.append(n)
195 n = n.left
196 # end of while means current node doesn't have left child
197 n = stack.pop()
198 # start to traverse its right child
199 n = n.right
200
201
202def in_order_iter(node: TreeNode) -> None:

Callers 1

Calls 2

appendMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected