首页 > 其他分享 >输出二叉树的右视图

输出二叉树的右视图

时间:2023-01-11 13:11:20浏览次数:56  
标签:node 输出 const 视图 tempQueue 二叉树 push root result

题目要求

image

题目链接

思路分析

方法一:刚开始做的时候没有什么思路,就采用了最笨的方法

  • 根据中序和先序求出二叉树
  • 得到层序遍历的结果
  • 得到每一层的最后一个元素
    方法比较笨拙,但是也回顾了之前所学的一些东西,感兴趣的可以试试。
    方法二:

代码参考

const solve = function (xianxu, zhongxu) {
  // 根据前序和中序获得二叉树
  const reductionRoot = function (pre, vin) {
    if (!pre.length || !vin.length) return null
    const root = new TreeNode(pre.shif())
    const index = vin.indexOf(root.val)
    root.left = reductionRoot(pre, vin.slice(0, index))
    root.right = reductionRoot(pre, vin.slice(index + 1))
    return root
  }
  // 层序遍历
  const sequenceTranversal = function (root) {
    const result = [], tempQueue = []
    if (!root) return result
    tempQueue.push(root)
    while (!tempQueue.length) {
      const len = tempQueue.length
      const curLevel = []
      for (let i = 0; i < len; i++) {
        const node = tempQueue.shift()
        curLevel.push(node.val)
        node.left && tempQueue.push(node.left)
        node.right && tempQueue.push(node.right)
      }
      result.push(curLevel)
    }
    return result
  }
  // 每一层的最后一个值
  const getLast = function (arr) {
    const res = []
    for (let i = 0; i < arr.length; i++) {
      res.push(result[i].slice(-1)[0])
    }
    return res
  }
}

标签:node,输出,const,视图,tempQueue,二叉树,push,root,result
From: https://www.cnblogs.com/zx529/p/17043405.html

相关文章

  • 电子设计教程10:电荷泵倍压输出电路
      电荷泵设计非常巧妙,只需要几个简单的器件,就能实现倍压或者负压。电荷泵,也称为开关电容式电压变换器,它通过电容对电荷的积累效应而产生高压,使电流逆势由低电势流向高电势......
  • 电子设计教程11:电荷泵负压输出电路
      参考电荷泵倍压输出电路,把参考电压由Vcc改为GND,即可得到电荷泵负压输出电路。  当Vin为高电平Vh时,T1测试点的电压VT1是GND(为了简便起见,忽略二极管的压降)Vin为电容C1......
  • 543. 二叉树的直径
    题目给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。注意:两结点之间的路径长度......
  • 算法刷题 Day 14 | 二叉树的递归遍历
    今日内容:理论基础递归遍历迭代遍历统一迭代详细布置理论基础需要了解二叉树的种类,存储方式,遍历方式以及二叉树的定义文章讲解:https://programm......
  • DRF06-视图架构
    本文探究Django以及DRF的视图的层层递进,从源码学习视图的不断完善和丰富01最简单的视图FBVurlpatterns=[path('test01/',views.test01)]只要在浏览器上请求......
  • Linux 中shell脚本输出fasta文件中每一条scaffold碱基的总长度
     001、[root@PC1test]#lsa.fa[root@PC1test]#cata.fa##测试fasta文件>chr1AACCCTTGTTCCCCC>chr2CCCTTTTTCCCCCCCCTTTT>chr3TTTTCCCC......
  • 重建二叉树
    题目描述思路分析在中序遍历列表中找到先序遍历列表中第一个节点,以此为界限可以将二叉树分为左右子树,可以得知左子树和右子树的长度,在先序遍历列表中划分出来。再依次拿......
  • SSIS【For 循环容器】(循环输出数值)
    For循环的用法不可缺少就3个条件:初始值,增长最大值,递增值。1.设计控制流如下:【脚本任务】放到【For循环容器】里面2. 新建一个整型变量3.设置【For循环容器】:InitExpr......
  • T-SQL查询:连续输出2个日期间的日期
    declare@startdatetimedeclare@enddatetimeset@start='2013-09-25'set@end='2013-09-30'selectdateadd(dd,num,@start)FROM(SELECTROW_NUMBER()OVER(......
  • 输出空心的数字金字塔
    函数接口定义:voidhollowPyramid(intn);其中​​n​​是用户传入的参数,为[1,9]的正整数。要求函数按照如样例所示的格式打印出​​n​​行空心的数字金字塔,请注意,最后一......