(1)删除叶子节点
- 找到要删除的节点 targetNode
- 找到要删除节点的父节点parent(父节点是否存在)
- 要删除的节点是父节点的左子树还是右子树
- 如果是左子树,则parent.left=null;如果是右子树则parent.right=null。
- 找到要删除的节点 targetNode
- 找到要删除节点的父节点parent(父节点是否存在)
- 确定该待删除节点是有左子树还是有右子树
- 要删除的节点是父节点的左子树还是右子树
- 如果 targetNode是parent的左子树;targetNode有的是左子树parent.left=target.left
- 如果 targetNode是parent的左子树;targetNode有的是右子树parent.left=target.right
- 如果 targetNode是parent的右子树;targetNode有的是右子树parent.right=target.right
- 如果 targetNode是parent的右子树; targetNode有的是左子树parent.right=target.left
- 找到要删除的节点 targetNode
- 找到要删除节点的父节点parent(父节点是否存在)
- 确定要删除的节点是父节点的左子树还是右子树
- 找右子树或右子树的的最左端(temp)和要删除的节点进行替换,删除被替换的节点targetNode.data=temp