二叉树中序遍历【迭代法】【代码随想录】

一、回顾递归法

每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归发各项参数,所以这就是为什么递归可以返回上一层位置的原因,即用栈也可以实现二叉树的前中后序遍历。

二、中序迭代遍历的特殊性

前【右根左】后序的代码不能和中序迭代遍历通用,后序可以根据前序修改【根右左=>最后反转】,因为前序遍历的顺序是根左右,先访问的元素是根节点,要处理的元素也是根节点,即要访问的元素和要处理的元素顺序是一致的。但中序遍历是左根右,先访问的是二叉树顶部的节点,然后一层一层向下访问,直到到达树左面的最底部,再开始处理节点,即要访问的顺序和处理的不一致

你可能感兴趣的:(数据结构与算法,数据结构,算法)