先处理中间节点 ,再遍历左子树,右子树

先遍历左子树, 完后处理中间节点, 然后遍历右子树

先将左右子树都遍历完成后,再处理节点

补充

补充:以上分别是二叉树的 前序遍历(根→左→右)、中序遍历(左→根→右,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;
}

来源整理自:我的有道云笔记