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

思路

在二叉搜索树中插入新节点。首先检查树是否为空,若空则直接创建新节点。否则通过遍历树结构,比较节点值大小决定向左或向右子树移动,直到找到合适的空位置插入新节点。时间复杂度为O(h),其中h是树的高度。该实现保持了二叉搜索树的性质,即左子树值小于父节点,右子树值大于父节点。

代码

cpp 复制代码
class Solution {
public:
    TreeNode* insertIntoBST(TreeNode* r, int b) {
        TreeNode* a=r;
        if(!r) {
            r=new TreeNode(b);
        }
        while(a) {
            if(a->val>b) {
                if(a->left) {
                    a=a->left;
                }
                else {
                    a->left=new TreeNode(b);
                    return r;
                }
            }
            else {
                if(a->right) {
                    a=a->right;
                }
                else {
                    a->right=new TreeNode(b);
                    return r;
                }
            }
        }
        return r;
    }
相关推荐
ShallWeL5 小时前
【机器学习】(20)—— 类别不平衡
人工智能·算法·机器学习
明志数科5 小时前
具身智能数据标准化:从碎片化接口到统一工作组的技术路径
人工智能·算法·机器学习
旖-旎5 小时前
LeetCode 494:目标和(动态规划/01背包问题)—— 题解
c++·算法·leetcode·动态规划·01背包
spssau5 小时前
一文学会结构方程模型:从模型搭建、路径图绘制到不达标调整,实操全流程
人工智能·python·算法
zzz_23686 小时前
【Java实习面试算法冲刺】总复盘
java·算法·面试
DFT计算杂谈6 小时前
DeepSeek 集群服务器无root本地部署指南
数据库·人工智能·python·opencv·算法
qq_454245036 小时前
GraphFoundation — 通用图基础框架
算法·架构
不一样的故事1267 小时前
军工行业合规与基础认知
数据结构·经验分享·算法
圣保罗的大教堂12 小时前
leetcode 3867. 数对的最大公约数之和 中等
leetcode
To_OC14 小时前
LC 15 三数之和:双指针不难,难的是把去重做对
javascript·算法·leetcode