剑指Offer——重建二叉树(JS实现)
发布日期:2021-06-30 15:20:31
浏览次数:2
分类:技术文章
本文共 641 字,大约阅读时间需要 2 分钟。
题目描述
解题思路
- 首先我们要明白遍历规则。
- 前序遍历指的是根>左>右
- 中序遍历指的是左>根>右
- 使用递归遍历的思想,首先定义递归结束条件,如果输入的列表只有一个元素,则直接返回这个树节点。
- 让前序遍历数组的第一个元素作为根节点。
- 定义变量i用来分割中序遍历数组中的左右子树,这个i就是根节点在中序遍历数组中的下标。
- 两个参数,可以分别理解为子树的前序遍历和中序遍历
实现代码
var buildTree = function (preorder, inorder) { if (preorder.length === 0 || inorder.length === 0) { return null; } if (preorder.length === 1) { return new TreeNode(preorder[0]); } let root = new TreeNode(preorder[0]); let i = inorder.indexOf(preorder[0]); root.left = buildTree(preorder.slice(1,i+1),inorder.slice(0,i)); root.right = buildTree(preorder.slice(i+1),inorder.slice(i+1)); return root;};
转载地址:https://jiapy.blog.csdn.net/article/details/115319257 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月30日 00时53分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
OSSIM(开源安全信息管理系统)在企业网络管理中的应用
2019-05-01
如何搭建Eclipse +Apache Tomcat配置Java开发环境
2019-05-01
Linux软件万花筒
2019-05-01
《Linux企业应用案例精解》一书已由清华大学出版社出版
2019-05-01
安装配置FreeBSD9全过程体验
2019-05-01
全球开源软件发展趋势分析
2019-05-01
Linux系统安全加固(一)
2019-05-01
Linux常用的安全工具
2019-05-01
python 多进程之进程池的操作
2019-05-01
flask整理之 flask程序中的debug模式
2019-05-01
比特币,父母这一辈能接受吗?
2019-05-01
为什么要反对比特币,这不代表是空气币
2019-05-01
我们提出了DeFi项目如何成为聚合器,有两种路径
2019-05-01
SnapEx的新感觉,对新手很友好
2019-05-01
首个聚合器怎么产生的,并运用领域在什么
2019-05-01
区块链的优势和劣势的对比
2019-05-01
区块链技术应用,最先医疗行业
2019-05-01
新币上市旧币会降价吗
2019-05-01
市场套利策略是什么
2019-05-01