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

删除节点

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

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地址

相关推荐
动词ing11 分钟前
【C语言】结构体+文件基础
c语言·开发语言·数据结构
晚风醉蝶3 小时前
1-11-奇偶排序-OddEvenSort
java·数据结构·算法
旖旎夜光3 小时前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
小雪崩4 小时前
嵌入式学习 day25:哈希表及排序与查找
linux·c语言·数据结构·学习·排序算法
冻柠檬飞冰走茶7 小时前
《数据结构实验指导-C++语言版》 求单链表list中的元素个数,即表长
开发语言·数据结构·c++·算法·list
_Narcissus_7 小时前
动态规划初探(含完整代码实现)
c语言·数据结构·c++·算法·动态规划·背包问题·最短路径
_Narcissus_9 小时前
枚举和模拟算法笔记
c语言·数据结构·c++·笔记·算法·模拟·枚举
冻柠檬飞冰走茶9 小时前
《数据结构实验指导-C++语言版》 在顺序表 list 中查找元素 x
开发语言·数据结构·c++·算法·list
Brilliantwxx9 小时前
【C++】 高阶数据结构图(1)并查集
开发语言·数据结构·c++
Fa_Mian_Tuan10 小时前
最小生成树之Kruskal算法(超详细原理+完整可运行C语言代码)
c语言·开发语言·数据结构·笔记·算法·图论