85. Insert Node in a Binary Search Tree/701. Insert into a Binary Search Tree
- 本题难度: Easy/Medium
- Topic: Binary Tree
Given a binary search tree and a new tree node, insert the node into the tree. You should keep the tree still be a valid binary search tree.
Example
Example 1:
Input: tree = {}, node = 1
Output: 1
Explanation:
Insert node 1 into the empty tree, so there is only one node on the tree.
Example 2:
Input: tree = {2,1,4,3}, node = 6
Output: {2,1,4,3,6}
Explanation:
Like this:
2 2
/ \ / \
1 4 --> 1 4
/ / \
3 3 6
Challenge
Can you do it without recursion?
Notice
You can assume there is no duplicate values in this tree + node.
Description
我的代码 for leetcode
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
"""
@param: root: The root of the binary search tree.
@param: node: insert this node into the binary search tree
@return: The root of the new binary search tree.
"""
def insertIntoBST(self, root, node):
# write your code here
if root is None:
return TreeNode(node)
pos = root
while(pos):
if pos.val<node:
if pos.right:
pos = pos.right
else:
pos.right = TreeNode(node)
return root
else:
if pos.left:
pos = pos.left
else:
pos.left = TreeNode(node)
return root
思路
不需要平衡
- 时间复杂度 O(log(n))