线索化二叉树
线索化二叉树的介绍:
对于这个普通二叉树来说,节点8,10,14的左右指针是空的,6的右指针是空的,也就是说并没有充分的利用到所有的指针。那么,我们可以对该树线索化,使得空闲的指针被充分利用。
中序线索化二叉树
对于一个线索二叉树(如上图),我们让空余节点的左指针指向它的前驱结点,右指针指向它的后继节点。这样一来,该节点的左指针有可能指向它的左子树,也可能指向前驱节点,该节点的右指针有可能指向它的右子树,也有可能指向后继节点。
所以,为了区分,我们在普通树节点的基础上设置leftType和rightType,当0时表示指向左右子树,1时表示指向前驱后继。
//线索化二叉树的节点
class Hero2{
public int no;
public String name;
public Hero2 left;
public Hero2 right;
//0代表是左子树,1代表是前驱节点
public int leftType;
//0代表是右子树,1代表是后继节点
public int rightType;
public Hero2(int no, String name) {
this