说实话,有关二叉树遍历这块,特别是迭代版本,网上好多写的糊里糊涂的,尤其是将三种遍历统一风格的,基本都是看到一头雾水,我想了个比较直观点(自认为) 首先,以下图二叉树为例, 使用迭代法,无论哪种遍历顺序都要首先要开一个栈,同时还需要一个指针cur用于控制当前 接下来是各遍历的代码 前序遍历 let preorder=function(root){ if(!root) return null; let stack=[],res=[],cur=root; //stack.push(root); while(cur||stack.length){ if(cur){ res.push(</