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.
# 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
思路
不需要平衡
[Lintcode]85. Insert Node in a Binary Search Tree/[Leetcode]701. Insert into a Binary Search Tree
原文:https://www.cnblogs.com/siriusli/p/10378320.html