diff --git a/trees/bst_insert_node.py b/trees/bst_insert_node.py new file mode 100644 index 0000000..79b3685 --- /dev/null +++ b/trees/bst_insert_node.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + + +def bst_insert_iterative(root, val): + + new_node = Node(val) + this_node = root + + while this_node: + + if val > this_node.val: + if not this_node.right: + this_node.right = new_node + return root + else: + this_node = this_node.right + + else: + if not this_node.left: + this_node.left = new_node + return this_node + else: + this_node = this_node.left + + return new_node + + +def bst_insert_recursive(root, val): + + if not root: + return Node(val) + + if val > root.val: + root.right = self.insertIntoBST(root.right, val) + + else: + root.left = self.insertIntoBST(root.left, val) + + return root +