首页 > 其他分享 >LeetCode 701. 二叉搜索树中的插入操作

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

时间:2023-07-04 20:44:10浏览次数:52  
标签:node TreeNode Val val 树中 701 二叉 root LeetCode

题目链接:LeetCode 701. 二叉搜索树中的插入操作

题意:

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

解题思路:

按照二叉搜索树的定义,直接进行模拟操作就可以了

递归代码:

func insertIntoBST(root *TreeNode, val int) *TreeNode {
    var res TreeNode
    res.Val = val
    if root == nil {
        return &res
    }
    if val > root.Val{
        root.Right = insertIntoBST(root.Right,val)
    }
    if val < root.Val{
        root.Left = insertIntoBST(root.Left,val)
    }
    return root
   
}

迭代法代码

func insertIntoBST(root *TreeNode, val int) *TreeNode {
    if root == nil {
        return &TreeNode{Val:val}
    }
    node := root
    var pnode *TreeNode
    for node != nil {
        if val > node.Val {
            pnode = node
            node = node.Right
        } else {
            pnode = node
            node = node.Left
        }
    }
    if val > pnode.Val {
        pnode.Right = &TreeNode{Val: val}
    } else {
        pnode.Left = &TreeNode{Val: val}
    }
    return root
}

标签:node,TreeNode,Val,val,树中,701,二叉,root,LeetCode
From: https://www.cnblogs.com/lxing-go/p/17526954.html

相关文章

  • LeetCode 236. 二叉树的最近公共祖先
    题目链接:LeetCode236.二叉树的最近公共祖先题意:给定一个二叉树,找到该树中两个指定节点的最近公共祖先。解题思路:利用二叉树的后序遍历回溯(从下往上遍历)的思想,依次遍历整个二叉树,在遍历过程中,遇到P就返回p的父节点,遇到q就返回q的父节点,(也就是找到了p,q各自的祖先)......
  • [leetcode每日一题]7.4
    2679. 矩阵中的和提示中等46相关企业给你一个下标从 0 开始的二维整数数组 nums 。一开始你的分数为 0 。你需要执行以下操作直到矩阵变为空:矩阵中每一行选取最大的一个数,并删除它。如果一行中有多个最大的数,选择任意一个并删除。在步骤1删除的所有数字中找到最大的一个数......
  • (Leetcode)746
    //方式一:第一步不支付费用classSolution{publicintminCostClimbingStairs(int[]cost){intlen=cost.length;int[]dp=newint[len+1];//从下标为0或下标为1的台阶开始,因此支付费用为0dp[0]=0;dp[1]=0;......
  • leetcode 22. 括号生成
    暴力枚举classSolution{publicList<String>generateParenthesis(intn){List<String>list=getAll(2*n);List<String>result=newArrayList<>();for(Stringitem:list){intvalue=0;......
  • 【LeetCode】矩阵中的和
    给你一个下标从0开始的二维整数数组nums。一开始你的分数为0。你需要执行以下操作直到矩阵变为空:矩阵中每一行选取最大的一个数,并删除它。如果一行中有多个最大的数,选择任意一个并删除。在步骤1删除的所有数字中找到最大的一个数字,将它添加到你的分数中。请你返回最......
  • 【笔试实战】LeetCode题单刷题-编程基础 0 到 1【二】
    1822. 数组元素积的符号题目链接1822. 数组元素积的符号题目描述已知函数 signFunc(x) 将会根据 x 的正负返回特定值:如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。给你一个整数数组 nums 。令 product 为数组 nums......
  • LeetCode 501. 二叉搜索树中的众数
    题目链接:LeetCode501.二叉搜索树中的众数题意:给你一个含重复值的二叉搜索树(BST)的根节点root,找出并返回BST中的所有众数(即,出现频率最高的元素)。如果树中有不止一个众数,可以按任意顺序返回。解题思路:递归法由于是二叉搜索树,中序遍历是有序的,因此相当于在一个有序的......
  • LeetCode 图
    200. 岛屿数量695. 岛屿的最大面积精品题解 https://leetcode.cn/problems/number-of-islands/solution/dao-yu-lei-wen-ti-de-tong-yong-jie-fa-dfs-bian-li-/注意深度优先遍历,对一格陆地(=='1')遍历, 就会把与它连通的所有陆地遍历到,全部标记为2,完成一个岛屿。从而这一次......
  • 20230701巴蜀暑期集训测试总结
    T1BS5463【NOI2018模拟7】xiz考场A了,猜的结论。求出每个位置上一个和他相同的数的距离,进行KMP。但是每个数在\(B\)中第一次出现的位置不好处理,就猜了个结论——KMP的两个循环中相等的判断方式相同就可以了(至今不知道是否一定是这样),改动一下两个数相等的判断就完了。详解T......
  • LeetCode -- 767. 重构字符串
     设字符串s长度为lens可以重构为相邻字符串不同时有字符串中出现次数最多的字符<(len+1)>>1当满足上述条件时候,我们就能对其进行重构重构法:先放置偶数位置,再放置奇数位置c++classSolution{public:stringreorganizeString(strings){vector<i......