数据结构之二叉树的暴力删除

删除节点

删除某个节点,如果非叶子节点,则将其下对应的子树均删除,纯属暴力删除,代码如下:

java 复制代码
/**
     * 删除节点, 如果该节点有子树的话, 将子树一起删除
     */
    public void deleteById(Integer id) {
        if (Objects.isNull(id)) {
            System.out.println("id为空, 无需处理");
            return;
        }
        PersonNode left = this.getLeft();
        if (Objects.nonNull(left)) {
            if (id.equals(left.getData().getId())) {
                this.setLeft(null);
            } else {
                this.getLeft().deleteById(id);
            }
        }
        PersonNode right = this.getRight();
        if (Objects.nonNull(right)) {
            if (id.equals(right.getData().getId())) {
                this.setRight(null);
            } else {
                this.getRight().deleteById(id);
            }
        }
    }

源码与测试案例

gitee地址

相关推荐
pystraf42 分钟前
UOJ 228 基础数据结构练习题 Solution
数据结构·c++·算法·线段树
祁同伟.1 小时前
【数据结构 · 初阶】- 堆的实现
c语言·数据结构
软行3 小时前
LeetCode 每日一题 2845. 统计趣味子数组的数目
数据结构·c++·算法·leetcode
永远在Debug的小殿下3 小时前
查找函数【C++】
数据结构·算法
我想进大厂3 小时前
图论---染色法(判断是否为二分图)
数据结构·c++·算法·深度优先·图论
Yhame.4 小时前
【使用层次序列构建二叉树(数据结构C)】
c语言·开发语言·数据结构
雾月554 小时前
LeetCode 1292 元素和小于等于阈值的正方形的最大边长
java·数据结构·算法·leetcode·职场和发展
Pasregret4 小时前
访问者模式:分离数据结构与操作的设计模式
数据结构·设计模式·访问者模式
阿让啊6 小时前
C语言中操作字节的某一位
c语言·开发语言·数据结构·单片机·算法
草莓啵啵~6 小时前
搜索二叉树-key的搜索模型
数据结构·c++