当前位置:首页 > JavaScript

实现js前序遍历

2026-01-30 22:36:22JavaScript

前序遍历简介

前序遍历是二叉树遍历的一种方式,遍历顺序为根节点、左子树、右子树。在JavaScript中,可以通过递归或迭代的方式实现前序遍历。

实现js前序遍历

递归实现

递归方法直接按照前序遍历的定义实现:

实现js前序遍历

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

迭代实现

使用栈模拟递归过程,显式地管理调用栈:

function preorderTraversal(root) {
    const result = [];
    const stack = [];
    if (root) stack.push(root);

    while (stack.length) {
        const node = stack.pop();
        result.push(node.val);
        if (node.right) stack.push(node.right);
        if (node.left) stack.push(node.left);
    }
    return result;
}

注意事项

递归实现代码简洁但可能存在栈溢出风险,适合深度较小的树。迭代实现通过显式栈避免了递归的潜在问题,适合深度较大的树结构。两种方法时间复杂度均为O(n),空间复杂度取决于树的结构。

标签: 遍历js
分享给朋友:

相关文章

react 如何遍历

react 如何遍历

遍历数组 在React中遍历数组通常使用map方法,它会返回一个新的数组。map是处理数组并渲染列表元素的首选方法。 const items = ['Apple', 'Banana', 'Cherr…

js实现乘法

js实现乘法

实现乘法运算的方法 在JavaScript中实现乘法运算可以通过多种方式完成,以下列举几种常见方法: 基础运算符 直接使用乘法运算符*是最简单的方式: let result = 3 * 5; //…

js实现刷新页面

js实现刷新页面

刷新页面的方法 在JavaScript中,可以通过多种方式实现页面刷新。以下是几种常见的方法: 使用 location.reload() 调用 location.reload() 方法可以重新加载当…

js实现隐藏div

js实现隐藏div

隐藏div的几种方法 使用JavaScript隐藏div元素可以通过多种方式实现,以下是几种常见的方法: 方法一:修改style.display属性 将div的display属性设置为"none"…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…

js实现递归

js实现递归

递归的基本概念 递归是一种通过函数调用自身来解决问题的方法。在JavaScript中,递归通常用于处理具有重复子问题或分治结构的数据,例如树形结构、阶乘计算等。 递归的实现要点 基线条件(Base…