思路
找到中序线索二叉树的第一个节点,并打印。从第一个节点开始,依次打印其后继节点。若没有后继节点就将其右孩子作为当前节点,继续遍历,直到节点为空,退出循环。
代码
head为二叉树的头结点
//中序遍历线索二叉树
public void midOrder() {
Hero2 node = head;
while (node != null) {
//找到中序线索二叉树的第一个节点,并打印
while (node.getLeftType() == 0) {
node = node.getLeft();
}
System.out.println(node);
//从第一个节点开始,一次打印其后继节点。
// 若没有后继节点就将其右孩子作为当前节点,继续遍历,直到退出循环
while (node.getRightType() == 1) {
node = node.getRight();
System.out.println(node);
}
node = node.getRight();
}
}