JS-树:二叉树前序遍历(先序遍历)


文章目录


前言

最近总结一下树的算法,研究树相关的知识。


一、前序遍历-递归

1、从根出发,然后左边然后右边

2、如下输入是:a b d e c f g

javascript 复制代码
  // 前序遍历
  const tree = {
    val: 'a',
    left: {
      val: 'b',
      left: { val: 'd', left: null, right: null },
      right: { val: 'e', left: null, right: null },
    },
    right: {
      val: 'c',
      left: { val: 'f', left: null, right: null },
      right: { val: 'g', left: null, right: null },
    },
  }
	
  // 前序遍历
console.log(fun1(tree))

function fun1(root: any) {
  const arr: any[] = []

  const fun = (node: any) => {
    if (node) {
      arr.push(node.val)
      fun(node.left)
      fun(node.right)
    }
  }

  fun(root)

  return arr
}

二、前序遍历-队列

1、从根出发,然后左边然后右边

2、如下输入是:a b d e c f g

javascript 复制代码
function fun2(root: any) {
  const arr: any[] = []
  const stack = [root]
  while (stack.length > 0) {
    const o = stack.pop()
    arr.push(o.val)
    o.right && stack.push(o.right)
    o.left && stack.push(o.left)
  }
  return arr
}

总结

这就是树的二叉树前序遍历(先序遍历),希望能帮助到你!

相关推荐
xiezhr5 分钟前
在trae的帮助下开发了俄罗斯方块游戏
前端·javascript·html
赫本的猫14 分钟前
JavaScript作用域详解:从基础到欺骗词法
前端·javascript
赫本的猫15 分钟前
JavaScript 预编译机制深度解析
前端·javascript
伍哥的传说25 分钟前
Vue3 响应式翻牌抽奖游戏
javascript·vue.js·游戏·前端框架·vue·交互
涛々35 分钟前
uniapp-vue3-js-vite-pinia-eslint 快速开发模板
javascript·uni-app·uniapp+vue3模板
Morpheon40 分钟前
R语言非结构化文本挖掘入门指南
开发语言·r语言
解道Jdon1 小时前
最新苹果液体玻璃Liquid Glass效果CSS实现
javascript·reactjs
啊~哈1 小时前
页面弹窗适配问题
前端·javascript·vue.js
用户327324209871 小时前
logger2js - JavaScript日志与调试工具库
javascript
安然dn1 小时前
Interact.js 一个轻量级拖拽库
javascript