首先,我们需要定义二叉树节点的数据结构:

class TreeNode {
  constructor(val) {
    this.val = val;
    this.left = null;
    this.right = null;
  }
}

然后,我们可以创建一棵二叉树:

const root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
root.right.left = new TreeNode(6);
root.right.right = new TreeNode(7);

最后,我们可以使用递归的方式实现中序遍历:

function inorderTraversal(root) {
  const result = [];
  function traverse(node) {
    if (node === null) {
      return;
    }
    traverse(node.left);
    result.push(node.val);
    traverse(node.right);
  }
  traverse(root);
  return result;
}

console.log(inorderTraversal(root)); // [4, 2, 5, 1, 6, 3, 7]

这里我们定义了一个 traverse 函数,用于遍历二叉树。在遍历过程中,我们先递归遍历左子树,然后将当前节点的值加入结果数组中,最后递归遍历右子树。最终返回结果数组即可。

用js写二叉树的中序遍历

原文地址: https://www.cveoy.top/t/topic/lA4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录