先处理中间节点 ,再遍历左子树,右子树
先遍历左子树, 完后处理中间节点, 然后遍历右子树
先将左右子树都遍历完成后,再处理节点
补充
补充:以上分别是二叉树的 前序遍历(根→左→右)、中序遍历(左→根→右,BST 中能得到升序序列)、后序遍历(左→右→根,常用于释放节点、子树聚合)。还有第四种常用遍历:层序遍历(按层从左到右,用 BFS + 队列实现)。
递归实现(前序为例):
function preorder(root) { if (!root) return; console.log(root.val); preorder(root.left); preorder(root.right); }层序遍历:
function levelOrder(root) { if (!root) return []; const q = [root], res = []; while (q.length) { const level = []; for (let i = q.length; i > 0; i--) { const n = q.shift(); level.push(n.val); if (n.left) q.push(n.left); if (n.right) q.push(n.right); } res.push(level); } return res; }
来源整理自:我的有道云笔记



