当前位置: 首页 > article >正文

LeetCode701. Insert into a Binary Search Tree

文章目录

    • 一、题目
    • 二、题解

一、题目

You are given the root node of a binary search tree (BST) and a value to insert into the tree. Return the root node of the BST after the insertion. It is guaranteed that the new value does not exist in the original BST.

Notice that there may exist multiple valid ways for the insertion, as long as the tree remains a BST after insertion. You can return any of them.

Example 1:

Input: root = [4,2,7,1,3], val = 5
Output: [4,2,7,1,3,5]
Explanation: Another accepted tree is:

Example 2:

Input: root = [40,20,60,10,30,50,70], val = 25
Output: [40,20,60,10,30,50,70,null,null,25]
Example 3:

Input: root = [4,2,7,1,3,null,null,null,null,null,null], val = 5
Output: [4,2,7,1,3,5]

Constraints:

The number of nodes in the tree will be in the range [0, 104].
-108 <= Node.val <= 108
All the values Node.val are unique.
-108 <= val <= 108
It’s guaranteed that val does not exist in the original BST.

二、题解

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* insertIntoBST(TreeNode* root, int val) {
        if(!root){
            TreeNode* t = new TreeNode(val);
            return t;
        }
        if(root->val > val){
            root->left = insertIntoBST(root->left,val);
        }
        else if(root->val < val){
            root->right = insertIntoBST(root->right,val);
        }
        return root;
    }
};

http://www.kler.cn/a/133301.html

相关文章:

  • windows tomcat 报错后如何让窗口不闪退
  • 数据库的性能优化 -- SQL性能优化
  • RabbitMQ轻松构建高效可靠的消息队列系统
  • 【月之暗面kimi-注册/登录安全分析报告】
  • 第四十五章 Vue之Vuex模块化创建(module)
  • 《Python网络安全项目实战》项目5 编写网站扫描程序
  • 欢迎各位加入知识星球,带各位进入新的领域
  • 《2020年最新面经》—字节跳动Java社招面试题
  • 腾讯云CVM服务器标准型/高IO/计算/大数据使用场景及选择说明
  • C++ 日期推算
  • AM@函数展开成幂级数@间接法@常用麦克劳林幂级数展开公式
  • QEMU显示虚拟化的几种选项
  • 解锁数据安全之门:探秘迅软DSE的文件权限控制功能
  • 【ES常用查询】基于ElasticsearchRestTemplate及NativeSearchQuery的查询
  • LabVIEW和NIUSRP硬件加快了认知无线电开发
  • 拍照小白入坑
  • PHP接收并处理请求中携带的xml格式的信息
  • 【小黑送书—第八期】>>别再吐槽大学教材了,来看看这些网友强推的数学神作!
  • 解决STM32F429烧录程序后还需复位才能植入程序的bug
  • 深入Android S(12.0) 探索 Android Framework 之 SystemServer 进程启动详解
  • 解决docker运行elastic服务端启动不成功
  • pandas教程:Resampling and Frequency Conversion 重采样和频度转换
  • Flask学习一:概述
  • IntelliJ IDE 插件开发 |(一)快速入门
  • CentOS7安装xvfb,解决服务器没有X-Server的问题
  • springboot+activiti5.22.0集成Activiti在线流程设计器