K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
假设二叉树节点结构包含val(节点值)、left(左子节点指针)、right(右子节点指针),不考虑空树的边界处理逻辑。
实现前序遍历(访问顺序为根-左-右)使用栈存储待访问节点时,需先将当前节点的右子节点压入栈,再压入左子节点
前序、中序、后序三种DFS遍历的迭代实现,都可以通过无额外标记的单栈完成,且均不需要额外辅助变量
实现中序遍历(访问顺序为左-根-右)的核心逻辑是:不断将当前节点的右子节点压入栈,直到节点为空时弹出栈顶节点访问
二叉树DFS迭代实现的空间复杂度固定为O(n),和递归实现的空间复杂度完全一致