JS-树:二叉树后序遍历


文章目录

  • 前言
  • 一、后序遍历-递归
  • 二、后序遍历-队列
  • 总结


前言

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


一、后序遍历-递归

1、左右根
2、如下输入是:4 5 2 6 7 3 1

  // 前序遍历
  const tree = {
    val: '1',
    left: {
      val: '2',
      left: { val: '4', left: null, right: null },
      right: { val: '5', left: null, right: null },
    },
    right: {
      val: '3',
      left: { val: '6', left: null, right: null },
      right: { val: '7', left: null, right: null },
    },
  }
	
  // 前序遍历
console.log(fun1(tree))

function fun1(root: any) {
  const arr: any[] = []
  const fun = (node: any) => {
    if (!node)
      return
    fun(node.left)
    fun(node.right)
    arr.push(node.val)
  }
  fun(root)
  return arr
}

二、后序遍历-队列

1、左右根
2、如下输入是:4 5 2 6 7 3 1

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

  while (stack.length) {
    const o = stack.pop()
    arr.unshift(o.val)
    o.left && stack.push(o.left)
    o.right && stack.push(o.right)
  }
  return arr
}

总结

这就是树的二叉树后序遍历,希望能帮助到你!

你可能感兴趣的:(vue,javascript,前端,开发语言)