数据结构之二叉树的暴力删除
删除节点
删除某个节点,如果非叶子节点,则将其下对应的子树均删除,纯属暴力删除,代码如下:
/*** 删除节点, 如果该节点有子树的话, 将子树一起删除*/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地址