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;
    }
相关推荐
oyguyteggytrrwwwrt11 小时前
自制交叉线路识别算法
算法
手写码匠11 小时前
华为云Flexus+DeepSeek征文|Dify 多智能体协同编排实战:R1 规划 + V3 执行,构建企业 Agent 团队
人工智能·深度学习·算法·aigc
晓天衡宇•评测社区12 小时前
FSR-Bench 前沿科学推理榜单发布:GPT-5.5 居首,“会推理”未必“能答对”
算法
程序喵大人13 小时前
【C++进阶】STL算法与函数对象 - 02 sort为什么需要随机访问迭代器
开发语言·c++·算法
hanlin0313 小时前
动态规划专练:力扣第121、122题
笔记·算法·leetcode
To_OC13 小时前
LC 74 搜索二维矩阵:换皮的二分查找,我居然一开始没看出来
javascript·算法·leetcode
文心快码BaiduComate13 小时前
文心快码荣获“中国优秀软件产品”,实力再获国家级认可
算法·代码规范
玖玥拾14 小时前
LeetCode 189 轮转数组
算法·leetcode
ZhangShao060714 小时前
题解:CF2249B
c++·算法
小玮看世界14 小时前
[Python]线段树与二分法
数据结构·算法