LEETCODE 701. 二叉搜索树中的插入操作

LEETCODE 701. 二叉搜索树中的插入操作

题目描述

给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。

注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。

例如,

给定二叉搜索树:

4
/ \
2 7
/ \
1 3

和 插入的值: 5
你可以返回这个二叉搜索树:

4
/ \
2 7
/ \ /
1 3 5
或者这个树也是有效的:

5
/ \
2 7
/ \
1 3
\
4

题目地址
中文版
英文版

代码实现

class Solution(object):
    def insertIntoBST(self, root, val):
        """
        :type root: TreeNode
        :type val: int
        :rtype: TreeNode
        """
        if not root:
            return TreeNode(val)
        p = root        
        while p:
            if p.val<val and p.right: 
                p = p.right 
            elif p.val>val and p.left:
                p = p.left
            else:
                break
        if p.val<val:
            p.right = TreeNode(val)
        else:
            p.left = TreeNode(val)
        return root
                                                     
0 次阅读

发表评论

电子邮件地址不会被公开。