非原创仅供自己学习用
为什么使用二叉树?
在有序数组中插入数据项太慢
在链表中查找太慢
寻找后继节点的算法:
待删除节点的右子节点,然后一路向左。
删除有两个子节点的树节点
【步骤】
①把后继父节点的leftChild字段设置为successor的右子节点
②把successor的rightChild字段置为待删除节点的右子节点
③把delNode从它父节点的rightChild字段移除,把这个字段置为successor
④把delNode的左子节点从delNode移除,successor的leftChild置为delNode的左子节点
代码:
1.successorParent.leftChild = successor.rightChild;
2.successor.rightChild = delNode.rightChild;
3.parent.rightChild = successor;
4.successor.leftChild = current.leftChild;
面试题:
说明生活中遇到的二叉树,用java实现二叉树
http://blog.youkuaiyun.com/qiyuexuelang/article/details/8826574