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

Function post_order_iter

searches/binary_tree_traversal.py:230–258  ·  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

228
229
230def post_order_iter(node: TreeNode) -> None:
231 """
232 >>> root = TreeNode(1)
233 >>> tree_node2 = TreeNode(2)
234 >>> tree_node3 = TreeNode(3)
235 >>> tree_node4 = TreeNode(4)
236 >>> tree_node5 = TreeNode(5)
237 >>> tree_node6 = TreeNode(6)
238 >>> tree_node7 = TreeNode(7)
239 >>> root.left, root.right = tree_node2, tree_node3
240 >>> tree_node2.left, tree_node2.right = tree_node4 , tree_node5
241 >>> tree_node3.left, tree_node3.right = tree_node6 , tree_node7
242 >>> post_order_iter(root)
243 4,5,2,6,7,3,1,
244 """
245 if not isinstance(node, TreeNode) or not node:
246 return
247 stack1, stack2 = [], []
248 n = node
249 stack1.append(n)
250 while stack1: # to find the reversed order of post order, store it in stack2
251 n = stack1.pop()
252 if n.left:
253 stack1.append(n.left)
254 if n.right:
255 stack1.append(n.right)
256 stack2.append(n)
257 while stack2: # pop up from stack2 will be the post order
258 print(stack2.pop().data, end=",")
259
260
261def prompt(s: str = "", width=50, char="*") -> str:

Callers 1

Calls 2

appendMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected