首页 > 其他分享 >leetcode450删除搜索二叉树的节点

leetcode450删除搜索二叉树的节点

时间:2023-09-12 13:22:25浏览次数:38  
标签:node right return leetcode450 二叉树 root 节点 left

删除的二叉树节点分4种情况:

  • 叶子节点,直接删除就行
  • 左节点不为空,右节点为空;直接将左子树返回
  • 左节点为空,右节点不为空;直接将右子树返回
  • 左节点和右节点不为空;将右子树最小的节点作为根节点,返回右子树
TreeNode* deleteNode(TreeNode* root, int key) {
        if(!root)return nullptr;
        if(root->val==key){
            if(!root->left&&!root->right){
                return nullptr;
            }else if(!root->left&&root->right){
                return root->right;
            }else if(root->left&&!root->right){
                return root->left;
            }else{
                TreeNode* node=root->right;
                while(node->left)node=node->left;
                node->left=root->left;
                return root->right;
            }
        }
            if(key>root->val)root->right=deleteNode(root->right,key);
            if(key<root->val)root->left=deleteNode(root->left,key);
        return root;
    }

 

标签:node,right,return,leetcode450,二叉树,root,节点,left
From: https://www.cnblogs.com/wangkaixin-yy/p/17695890.html

相关文章

  • 二叉树 遍历 hdu-1710-Binary Tree Traversals
    给出二叉树的前序遍历和中序遍历,求后序遍历。。 算法:由前序遍历的第一个元素可确定左、右子树的根节点,参照中序遍历又可进一步确定子树的左、右子树元素。如此递归地参照两个遍历序列,最终构造出二叉树。 由前序和中序结果求后序遍历结果树的遍历: 给你一棵树的先......
  • 二叉树(binary tree)
    二叉树(binarytree)二叉树(BinaryTree)是一种常见的树状数据结构,它由一组节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树具有以下特点:每个节点最多有两个子节点,分别称为左子节点和右子节点。左子树和右子树也是二叉树,它们的结构与父节点类似。二叉树的顺......
  • rac节点踢除
    解决方案1,删除节点1.1备份OCR在删除节点钱,建议手动备份OCR,OLR(GRID每4个小时也会自动备份OCR),目的是如果出现某些问题,我们可以恢复到删除节点前。$GRID_HOME=/u01/app/11.2.0/grid查看ocr的自动备份信息[root@rac02rac02]#$GRID_HOME/bin/ocrconfig-showbackupPROT-24:Auto......
  • k8s集群在扩容的是某个节点出现 Error querying BIRD: unable to connect to BIRDv4 s
    k8s集群在扩容的是某个节点出现ErrorqueryingBIRD:unabletoconnecttoBIRDv4socket1、问题背景:原因是因为新扩容的机器在扩容之前安装过docker切和当前的版本相差较大:在k8s扩容的时候扩容完发现calico异常,describe查看事件后发现报错如下:发现Kubernetes容器集群中有......
  • #yyds干货盘点# LeetCode程序员面试金典:翻转二叉树
    题目:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]代码实现:classSolution{publicTreeNodeinvertTree(TreeNoderoot){......
  • 二叉树(顺序存储要维护关系)
                    ......
  • 二叉树的便利
         ......
  • 代码随想录:● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98
     654.最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个......
  • Java版剑指offer:平衡二叉树
    Java版剑指offer:平衡二叉树描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(BalancedBinaryTree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉......
  • java版本剑指offer:在二叉树中找到两个节点的最近公共祖先
    java版本剑指offer:在二叉树中找到两个节点的最近公共祖先描述给定一棵二叉树(保证非空)以及这棵树上的两个节点对应的val值o1和o2,请找到o1和o2的最近公共祖先节点。注:本题保证二叉树中每个节点的val值均不相同。示例1输入:[3,5,1,6,2,0,8,#,#,7,4],5,1返回值:3方法一:递......