二叉树遍历 js版

二叉树的遍历。和怎么得到结果的,开始不太好理解,后来发现一个简单方法,供参考,水平有限,有问题,请指正。
如图
如以上二叉树, 前序遍历 (D L R) ,中序遍历 (L D R),后序遍历 (LRD),代码如下

 // 树的表示 
  const tree = {
    val: 1,
    left: {
      val: 2,
      left: { val: 4 },
      right: {val: 5}
    },
    right: {
      val: 3
    }
  };
  
  function DLR(node) {
    if (node) {
      console.log(node.val)
      DLR(node.left)
      DLR(node.right)
    }
  }

  function LDR(node) {
    if (node) {
      LDR(node.left)
      console.log(node.val)
      LDR(node.right)
    }
  }

  function LRD(node) {
    if (node) {
      LRD(node.left)
      LRD(node.right)
      console.log(node.val)
    }
  }
  

理解, 怎么简单去理解,得到结果呢?

  1. 比如 前序是 根 -> 左 -> 右
  2. 以上二叉树 123 的顺序就是 1->2->3
  3. 在245的树,顺序是 2->4->5
  4. 组合以上结果 2->4->5 替换 1->2->3 中的2
  5. 得到结果 1->2->4->5->3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值