[Lintcode]85. Insert Node in a Binary Search Tree/[Leetcode]701. Insert into a Binary Search Tree
阿新 • • 發佈:2019-02-14
should 時間 bst urn ram ive pos rip medium
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))
[Lintcode]85. Insert Node in a Binary Search Tree/[Leetcode]701. Insert into a Binary Search Tree