summaryrefslogtreecommitdiff
path: root/src/02/01/binary_tree.c
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-07-11 16:54:11 -0600
committermo khan <mo.khan@gmail.com>2020-07-11 16:54:11 -0600
commitb9d31fde299fd7b40f3bcd4aae456a31ea4ce87d (patch)
tree567566b1641bd788e05e106fbed73cdfa443b2c4 /src/02/01/binary_tree.c
parentdce786c330bf59eb314e4e310373cfe8d2758835 (diff)
Implement a recursive postorder traversal
Diffstat (limited to 'src/02/01/binary_tree.c')
-rw-r--r--src/02/01/binary_tree.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/02/01/binary_tree.c b/src/02/01/binary_tree.c
index af0d2b0..7fd9763 100644
--- a/src/02/01/binary_tree.c
+++ b/src/02/01/binary_tree.c
@@ -18,6 +18,15 @@ void preorder_traversal(Node *node, Visitor visitor) {
preorder_traversal(node->right, visitor);
}
+void postorder_traversal(Node *node, Visitor visitor) {
+ if (!node)
+ return;
+
+ postorder_traversal(node->left, visitor);
+ postorder_traversal(node->right, visitor);
+ visitor(node);
+}
+
void destroy(Node *head) {
free(head);
}