DeepRest

Insert into a Binary Search Tree

Jan 11th, 2022 (edited)
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.29 KB | None | 0 0
  1. '''
  2. 1. Iterative Implementation
  3. '''
  4. # Definition for a binary tree node.
  5. # class TreeNode:
  6. #     def __init__(self, val=0, left=None, right=None):
  7. #         self.val = val
  8. #         self.left = left
  9. #         self.right = right
  10. class Solution:
  11.     def insertIntoBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
  12.         if not root:
  13.             return TreeNode(val)
  14.         curr = root
  15.         while curr:
  16.             prev = curr
  17.             if val <= curr.val:
  18.                 curr = curr.left
  19.             else:
  20.                 curr = curr.right  
  21.         if val <= prev.val:
  22.             prev.left = TreeNode(val)
  23.         else:
  24.             prev.right = TreeNode(val)
  25.         return root
  26. '''
  27. 2. Recursive Implementation
  28. '''
  29. # Definition for a binary tree node.
  30. # class TreeNode:
  31. #     def __init__(self, val=0, left=None, right=None):
  32. #         self.val = val
  33. #         self.left = left
  34. #         self.right = right
  35. class Solution:
  36.     def insertIntoBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
  37.         if root is None:
  38.             return TreeNode(val)
  39.         if val < root.val:
  40.             root.left = self.insertIntoBST(root.left, val)
  41.         else:
  42.             root.right = self.insertIntoBST(root.right, val)
  43.         return root
Add Comment
Please, Sign In to add comment