本节任务:
- 如果删除的节点是叶子节点,则删除该节点
- 如果删除的节点是非叶子节点,则删除该子树
- 测试删除5号叶子节点和3号子树
思路图解:
规定:
- 如果删除的节点是叶子节点,则删除该节点。
- 如果删除的节点是非叶子节点,则删除该子树。
把判断root的逻辑写在BinaryTree二叉树的删除方法里,然后递归的逻辑写在HeroNode节点的删除方法里。
思路:
首先处理:
考虑如果树是空树,和如果只有一个root节点,则等价于将二叉树置空。
public void delNode(int no) {
if (root != null) {
// 如果只有一个root结点,这里立即判断root是不是要删除的结点
if (root.getNo() ==