[Lintcode]85. Insert Node in a Binary Search Tree/[Leetcode]701. Insert into a Binary Search Tree

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))

转载于:https://www.cnblogs.com/siriusli/p/10378320.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值