用js写二叉树的中序遍历
首先,我们需要定义二叉树节点的数据结构:
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 函数,用于遍历二叉树。在遍历过程中,我们先递归遍历左子树,然后将当前节点的值加入结果数组中,最后递归遍历右子树。最终返回结果数组即可。
原文地址: https://www.cveoy.top/t/topic/lA4 著作权归作者所有。请勿转载和采集!