• 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
  • 相关阅读:
    【HDU 1060】Leftmost Digit
    【HLG 1572】表达式计算(后缀表达式+栈的应用)
    Vue CLI3 开启gzip压缩
    html元素呼吸效果
    前端实现在线预览pdf、word、xls、ppt等文件
    devServer proxy的使用
    7个基础js函数
    前端初中高级面试题1
    模仿头条导航的左右滚动效果
    angular基本入门教程
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13756150.html
Copyright © 2020-2023  润新知