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;
    }
相关推荐
Tisfy3 分钟前
LeetCode 0301.删除无效的括号:二进制枚举 / 回溯
算法·leetcode·字符串·题解·回溯·括号匹配·二进制枚举
Nil20811 分钟前
leetcode 322零钱兑换
算法·leetcode·职场和发展
海绵宝宝转agent15 分钟前
2026-10-9 leetcode100刷题+面经整理
笔记·算法·面试
yi01126 分钟前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
木井巳27 分钟前
【BFS 解决拓扑排序】课程表
java·算法·leetcode·广度优先·宽度优先·推荐算法·图搜索算法
扶风ff1 小时前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
yi0111 小时前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针
-dzk-1 小时前
【多维动态规划】LC 1143.最长公共子序列
算法·动态规划
C++ 老炮儿的技术栈1 小时前
char (*csConnectName)[256]; 和 char csConnectName [256] 有什么区别
java·c语言·开发语言·c++·人工智能·算法·c
Omics Pro1 小时前
全新可重分析!代谢组质谱专用
数据库·人工智能·算法·机器学习·自然语言处理