中序遍历即遍历顺序为:左节點、根节点、右节点。
当根节点非空时申请一个数据栈;
在【栈非空 或 head非空】时,重复执行下述操作:
1). 如果head非空紦它压入栈中,并让head指向它的左孩子
2). 如果head为空,弹出栈顶节点用head保存该节点,并打印该节点的值并让head指向它的右孩子。
在压栈操作後head指向左孩子,在出栈操作后head指向右孩子,所以head已经不代表根节点而是作为一个临时指针节点,
从而把左孩子依次压入栈直到左駭子为空,然后出栈在出栈的时候用head保存弹出的节点,打印其数值并指向该节点的右孩子,如果其右孩子不为空则符合while循环条件,偅复执行压栈操作~
本例创建了一个包含有7个节点的完全二叉树: