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;
    }
相关推荐
灵感__idea3 小时前
Hello 算法:“走一步看一步”的智慧
前端·javascript·算法
lwf0061644 小时前
导数学习日记
学习·算法·机器学习
头发够用的程序员5 小时前
从滑动窗口到矩阵运算:img2col算法基本原理
人工智能·算法·yolo·性能优化·矩阵·边缘计算·jetson
武帝为此6 小时前
【数据清洗缺失值处理】
python·算法·数学建模
Halo_tjn6 小时前
Java 基于字符串相关知识点
java·开发语言·算法
念越7 小时前
算法每日一题 Day08|双指针法解决三数之和
算法·力扣
黎阳之光7 小时前
黎阳之光透明管理:视频孪生重构智慧仓储新范式
人工智能·算法·安全·重构·数字孪生
6Hzlia7 小时前
【Hot 100 刷题计划】 LeetCode 199. 二叉树的右视图 | C++ DFS 逆序遍历
c++·leetcode·深度优先
CappuccinoRose8 小时前
回溯法 - 软考备战(四十三)
算法·排列组合·路径·n皇后·子集·解数独·岛屿
AC赳赳老秦8 小时前
OpenClaw进阶技巧:批量修改文件内容、替换关键词,解放双手
java·linux·人工智能·python·算法·测试用例·openclaw