K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
假设二叉树节点结构包含val(节点值)、left(左子节点)、right(右子节点)三个属性
迭代实现DFS时,通常使用栈作为辅助数据结构,实现前序遍历时需要先将右子节点压入栈,再压入左子节点,才能保证访问顺序正确
递归实现DFS的时间复杂度远高于迭代实现,二者性能差距可达数量级
DFS的三种遍历顺序(前序、中序、后序)的迭代实现逻辑完全一致,仅需调整节点访问的时机即可得到不同遍历结果
递归实现DFS不需要额外的辅助空间,空间复杂度为O(1)