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


    给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。

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

    例如, 

    给定二叉搜索树:

    4
    /
    2 7
    /
    1 3

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

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

    5
    /
    2 7
    /
    1 3

    4
     

    提示:

    给定的树上的节点数介于 0 和 10^4 之间
    每个节点都有一个唯一整数值,取值范围从 0 到 10^8
    -10^8 <= val <= 10^8
    新值和原始二叉搜索树中的任意节点值都不同

    递归

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def insertIntoBST(self, root: TreeNode, val: int) -> TreeNode:
            if not root:return TreeNode(val)
            if val<root.val:root.left = self.insertIntoBST(root.left,val)
            else:root.right = self.insertIntoBST(root.right,val)
            return root

    模拟

    class Solution:
        def insertIntoBST(self, root: TreeNode, val: int) -> TreeNode:
            if not root:
                return TreeNode(val)
            
            cur = root
            while cur:
                if val < cur.val:
                    if not cur.left:
                        cur.left = TreeNode(val)
                        break
                    else:
                        cur = cur.left
                else:
                    if not cur.right:
                        cur.right = TreeNode(val)
                        break
                    else:
                        cur = cur.right
            
            return root
  • 相关阅读:
    Linux_C smsh1
    ACM&排序问题,操作符重载
    ACM&找双亲,并查集
    struct dirent/DIR
    关于win8如何查找出当前的密钥
    php之留言板
    php之include&require
    工作中的问题 和 所用到的知识点
    jQuery.extend 和 jQuery.fn.extend
    JavaScript 字符串函数 之查找字符方法(一)
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13756150.html
Copyright © 2020-2023  润新知