博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
72_leetcode_Construct Binary Tree from Preorder and Inorder Traversal
阅读量:5345 次
发布时间:2019-06-15

本文共 1614 字,大约阅读时间需要 5 分钟。

Given preorder and inorder traversal of a tree, construct the binary tree.

Note:

You may assume that duplicates do not exist in the tree.

1:注意特殊情况。2:递归的情况;3:递归结束情况;4:首先获得根节点,之后把两个数组分别分成两部分,递归分别得出左子树和右子树。

TreeNode *buildTree(vector
&preorder, vector
&inorder) { if(preorder.size() == 0 || inorder.size() == 0 || preorder.size() != inorder.size()) { return NULL; } int size = (int)preorder.size(); return buildTreeCore(preorder, 0, inorder, 0, size); } TreeNode* buildTreeCore(vector
&preorder, int preStart, vector
&inorder, int preIn, int length) { if(length == 1) { if(preorder[preStart] != inorder[preIn]) { return NULL; } } int rootValue = preorder[preStart]; TreeNode *root = new TreeNode(rootValue); int i = 0; for(; i < length; i++) { if(inorder[preIn + i] == rootValue) { break; } } if(i == length) { return NULL; } if(i > 0) { root->left = buildTreeCore(preorder, preStart + 1, inorder, preIn, i); } if(i < length - 1) { root->right = buildTreeCore(preorder, preStart + i + 1, inorder, preIn + i + 1, length - 1 - i); } return root; }

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/zfyouxi/p/4909119.html

你可能感兴趣的文章
传统企业-全渠道营销解决方案-1
查看>>
Lucene全文检索
查看>>
awk工具-解析1
查看>>
推荐一款可以直接下载浏览器sources资源的Chrome插件
查看>>
CRM product UI里assignment block的显示隐藏逻辑
查看>>
AMH V4.5 – 基于AMH4.2的第三方开发版
查看>>
Web.Config文件配置之配置Session变量的生命周期
查看>>
mysql导入source注意点
查看>>
linux下编译安装nginx
查看>>
ArcScene 高程不同的表面无法叠加
查看>>
[ONTAK2010] Peaks
查看>>
DLL 导出函数
查看>>
windows超过最大连接数解决命令
查看>>
12个大调都是什么
查看>>
angular、jquery、vue 的区别与联系
查看>>
参数范围的选择
查看>>
使用 MarkDown & DocFX 升级 Rafy 帮助文档
查看>>
THUPC2019/CTS2019/APIO2019游记
查看>>
Nodejs Express模块server.address().address为::
查看>>
4.3.5 Sticks (POJ1011)
查看>>