首页 > 编程语言 >代码随想录算法训练营第22天

代码随想录算法训练营第22天

时间:2023-01-18 19:35:10浏览次数:57  
标签:right TreeNode 22 val 训练营 随想录 return root left

今日刷题3道:235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作, 450.删除二叉搜索树中的节点

●  235. 二叉搜索树的最近公共祖先

题目链接/文章讲解:https://programmercarl.com/0235.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B1%E7%A5%96%E5%85%88.html

视频讲解:https://www.bilibili.com/video/BV1Zt4y1F7ww

 递归法:

class Solution { public:     TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {         if(root==NULL) return root;         if(root->val > p->val && root->val > q->val){             TreeNode* result = lowestCommonAncestor(root->left, p, q);             if(root->left!=NULL) return result;         }         if(root->val < p->val && root->val < q->val){             TreeNode* result = lowestCommonAncestor(root->right, p, q);             if(root->right!=NULL) return result;         }         return root;     } }; 迭代法:
class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        while(root) {
            if (root->val > p->val && root->val > q->val) {
                root = root->left;
            } else if (root->val < p->val && root->val < q->val) {
                root = root->right;
            } else return root;
        }
        return NULL;
    }
};

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

题目链接/文章讲解:https://programmercarl.com/0701.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E4%B8%AD%E7%9A%84%E6%8F%92%E5%85%A5%E6%93%8D%E4%BD%9C.html

视频讲解:https://www.bilibili.com/video/BV1Et4y1c78Y

class Solution { public:     TreeNode* insertIntoBST(TreeNode* root, int val) {         if(root == NULL){             TreeNode* node = new TreeNode(val);             return node;         }         if(root->val > val) root->left = insertIntoBST(root->left,val);         if(root->val < val) root->right = insertIntoBST(root->right,val);         return root;     } };

●  450.删除二叉搜索树中的节点

题目链接/文章讲解:https://programmercarl.com/0450.%E5%88%A0%E9%99%A4%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E4%B8%AD%E7%9A%84%E8%8A%82%E7%82%B9.html

视频讲解:https://www.bilibili.com/video/BV1tP41177us

 

class Solution { public:     TreeNode* deleteNode(TreeNode* root, int key) {         if(root == nullptr) return root;         if(root->val==key){             if(root->left==nullptr && root->right==nullptr){                 delete root;                 return nullptr;             }             else if(root->left == nullptr){                 auto resnode = root->right;                 delete root;                 return resnode;             }             else if(root->right == nullptr){                 auto resnode = root->left;                 delete root;                 return resnode;             }             else{                 TreeNode* cur = root->right;                 while(cur->left!=nullptr){                     cur=cur->left;                 }                 cur->left=root->left;                 TreeNode* tmp = root;                 root = root->right;                 delete tmp;                 return root;             }         }         if(root->val > key) root->left = deleteNode(root->left, key);         if(root->val< key)  root->right = deleteNode(root->right, key);         return root;     } };

标签:right,TreeNode,22,val,训练营,随想录,return,root,left
From: https://www.cnblogs.com/zzw0612/p/17060195.html

相关文章

  • 工业互联网2022:第一梯队成型、专精玩家突围
    文|智能相对论作者|沈浪回顾2022年,市场依旧对工业互联网领域保持着高度的热情与专注。近期,IDC、Gartner等各大国际研究机构接连发布多份工业互联网相关报告,包括《2022年度中......
  • 这一年,熬过许多夜,也有些许收获 | 2022年终总结
    ​弹指一挥间,时间如白驹过隙。光阴似箭,日月如梭,时间如闪电,转瞬即逝。回望来时路,不觉潸然泪下......一说到年终总结,好像都离不开这样煽情的开场白。但不可否认的是,时间确实过......
  • STGP19NC60KD原装IGBT晶体管20A600V,TO-220封装
    STGP19NC60KD原装IGBT晶体管20A600V特点:低电压降(VcE(sat))低Cres/Cies比(无交叉传导磁化率),短路耐受时间为10us,IGBT与超快自由旋转二极管合封。应用:高频逆变器,电机驱动器。说明:......
  • P22_条件渲染
    条件渲染wx:if在小程序中,使用wx:if="{{condition}}"来判断是否需要渲染该代码块:也可以用wx:elif和wx:else来添加else判断:结合使用wx:if如果要一次性控......
  • 使用VS2022编译QCAD项目
    使用VS2022编译QCAD项目准备工作安装VS2022下载并安装QT5.15.2,及QTVisualStudioTools工具;关于安装环境的配置可以看另一篇文章《基于VS2022的QT环境安装配置》......
  • 2022中国低代码行业生态发展洞察报告
    数字经济下产品更新换代速度加快,市场需求更迭同步提速,企业不断提升软件开发效率。在此环境下,低代码的出现为企业数字化发展注入新动能,释放企业内部业务端的产品设计潜力,让技......
  • 致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划
    岁末年初,在开源领域刚埋下一颗生机勃勃的种子的Tapdata,想和正在关注我们的开发者,聊聊这一年的进展和新一年的共建计划。2022年4月,Tapdata宣布开源PDK(PluginDevelopmen......
  • 博云上榜2022中国信创厂商60强!
    近日,亿欧智库发布《2022中国信创产业竞争力研究报告及精选60强信创厂商》(以下简称《报告》)。报告重点从需求侧与供给侧分析近三年信创产业发展现状,解析信创产业核心竞争力,并......
  • 致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划
    岁末年初,在开源领域刚埋下一颗生机勃勃的种子的Tapdata,想和正在关注我们的开发者,聊聊这一年的进展和新一年的共建计划。2022年4月,Tapdata宣布开源PDK(PluginDevelopment......
  • 十年聚焦,巨杉数据库再获毕马威2022领先金融科技50企业殊荣
    巨杉数据库凭借在金融科技与分布式数据库领域出色的市场表现与过硬的技术实力,成功入选“2022中国领先金融科技50企业”,成为本次榜单唯一入选的分布式数据库厂商。1月16日,......