二叉树遍历之中序遍历
二叉树的中序遍历与深度优先搜索很类似,对于深度优先算法,我们使用栈(Stack),广度优先搜索使用队列(Queue)。二叉树的中序遍历遵循三个步骤
- 遍历左树
- 访问根节点
- 遍历右数
首先从根节点开始,遍历它的左树。到达节点20,同样查找它的左子树,现在到达11节点,再查找它左边的节点,因为11节点没有左子节点,故返回并打印它的值。下一步我们尝试寻找11的右子树,也是空的。所以我们返回20节点
Output:11
这时已经遍历完了20节点的左子树,所以我们打印出它的值,然后遍历它的右子树。
Output:11,20
遵循之前的规律,同样的访问29 ,32 节点。
Output:11 , 20 , 29 , 32
当20节点的右子树也遍历完了时,返回41节点。开始遍历它的右子树。重复上述的步骤。
得到最后的输出为
Output:11 , 20 , 29 , 32,41 , 50 , 65 , 72 , 91 , 99