代码随想录之二叉搜索树的插入操作

本题在力扣701

本体思路学习于代码随想录

JAVA版本

思路:本题的思想较为简单,直接找到适合插入的结点来进行插入即可

解法一:

递归法:

复制代码
class Solution {
    public TreeNode insertIntoBST(TreeNode root, int val) {
        if(root ==null) {
            return new TreeNode(val);
        }
        if(root.val < val){
            root.right = insertIntoBST(root.right,val);
        } else {
            root.left = insertIntoBST(root.left,val);
        }
        return root;
    }
}

解法二:

迭代法:

迭代法的思想就是找到最适合插入的结点,在最适合插入的结点来进行插入操作。

复制代码
class Solution {
    public TreeNode insertIntoBST(TreeNode root, int val) {
         if (root == null) return new TreeNode(val);

        TreeNode newRoot = root;
        TreeNode pre = root;
        while(root != null) {
            pre = root;
            if (root.val > val) {
                root = root.left;
            } else if (root.val < val) {
                root = root.right;
            } 
        }
        if (pre.val > val) {
            pre.left = new TreeNode(val);
        } else {
            pre.right = new TreeNode(val);
        }

        return newRoot;
    }
}
相关推荐
宝贝儿好7 小时前
【强化学习实战】第十一章:Gymnasium库的介绍和使用(1)、出租车游戏代码详解(Sarsa & Q learning)
人工智能·python·深度学习·算法·游戏·机器学习
pao__pao_10 小时前
计算机系统大作业 程序人生-Hello’s P2P
程序人生·职场和发展·课程设计
munubak10 小时前
程序人生-Hello’s P2P
程序人生·职场和发展
努力学算法的蒟蒻10 小时前
day109(3.10)——leetcode面试经典150
面试·职场和发展
芝士爱知识a10 小时前
【程序人生】码农考公指南:是“降维打击”还是“围城自困”?
程序人生·职场和发展·程序员·公务员·考公·职场规划
炒鸡菜66611 小时前
程序人生-Hello’s P2P
c语言·程序人生·职场和发展
weixin_4588726111 小时前
东华复试OJ二刷复盘2
算法
Charlie_lll11 小时前
力扣解题-637. 二叉树的层平均值
算法·leetcode
爱淋雨的男人11 小时前
自动驾驶感知相关算法
人工智能·算法·自动驾驶
wen__xvn11 小时前
模拟题刷题3
java·数据结构·算法