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

. - 力扣(LeetCode) 

 

 

 

/**
 * 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* deleteNode(TreeNode* root, int key) {
        if(!root)
            return nullptr;
        if(root->val<key){
            root->right=deleteNode(root->right, key);
            return root;
        }
        if(root->val>key){
            root->left=deleteNode(root->left, key);
            return root;
        }
        if(root->val == key){
            if(!root->left && !root->right)
                return nullptr;
            if(!root->right)
                return root->left;
            if(!root->left)
                return root->right;
            
            TreeNode* node=root->right;
            while(node->left)
                node=node->left;
            root->right = deleteNode(root->right, node->val);
            node->left=root->left;
            node->right=root->right;
            return node;

            
        }
            
        return root;
    }
};

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-16 09:00:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-16 09:00:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-16 09:00:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-16 09:00:05       20 阅读

热门阅读

  1. 医疗图像自动轮廓勾画

    2024-06-16 09:00:05       7 阅读
  2. 大数据开发语言Scala入门:新手小白学习指南

    2024-06-16 09:00:05       7 阅读
  3. git如何将本地仓库的代码提交到远程仓库

    2024-06-16 09:00:05       13 阅读
  4. 了解版本管理系统

    2024-06-16 09:00:05       9 阅读
  5. 如何使用React的state来管理组件的内部状态?

    2024-06-16 09:00:05       8 阅读
  6. Flink 容错

    2024-06-16 09:00:05       9 阅读
  7. LeetCode 189.轮转数组

    2024-06-16 09:00:05       10 阅读
  8. 中电金信:The Financial-Grade Digital Infrastructure

    2024-06-16 09:00:05       8 阅读
  9. 小程序的生命周期

    2024-06-16 09:00:05       5 阅读
  10. 如何使用python matplotlib绘制正态分布的直方图?

    2024-06-16 09:00:05       8 阅读
  11. C++ Primer Plus v6 Chapter13 exercise 4

    2024-06-16 09:00:05       7 阅读
  12. 200. 岛屿数量

    2024-06-16 09:00:05       6 阅读
  13. 如何开发高效服务(C++ )

    2024-06-16 09:00:05       6 阅读
  14. 【@Bean和@component的区别】

    2024-06-16 09:00:05       7 阅读