一、删除节点有三种情况
1,删除叶子节点
2,删除只有一个子树的节点
3,删除有两个子树的节点
二、步骤:
(一),删除叶子节点:
1,找到要删除的叶子节点(targetNode)
2,找到目标结点的父节点parentNode(考虑是否有父节点)
3,确定删除的节点是其父节点的左子树还是右子树
4,根据前边的情况进行删除
左子树:parent.left = null
右子树:parent.right = null
(二),删除只有一个子树的节点
1,找到要删除的叶子节点(targetNode)
2,找到目标结点的父节点parentNode(考虑是否有父节点)
3,确定删除的节点是其父节点的左子树还是右子树
4,根据前边的情况进行删除
1,targetNode是左子树
1,targetNode有左子树 parent.left = target.left
2,targetNode有右子树 parent.left = target.right
1,targetNode是右子树
1,targetNode有左子树 parent.right = target.left
2,targetNode有右子树 parent.right = target.right
(三),删除有两个子树的节点
1,找到要删除的叶子节点(targetNode)
2,找到目标