144 二叉树的前序遍历
- 递归实现:res.push_back(root->val);为1,实现 中左右。
- 迭代实现:用栈实现,栈的保存顺序为右左,出栈顺序为左右。
94 二叉树的中序遍历
- 递归实现:res.push_back(root->val);为2,实现 左中右。
- 迭代实现:用栈实现,cur不为空时,栈保存cur指向节点。cur为空,表示到达左子树的最下方,需要访问元素,从栈顶弹出元素并访问。之后cur指向这个节点的右子树。
145 二叉树的后序遍历
- 递归实现:res.push_back(root->val);为3,实现 左右中。
- 迭代实现:左右中 的后序遍历倒过来是 中右左的先序,所以改变先序迭代遍历中保存入栈的顺序为 左右 ,出栈顺序为 右左。