博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode Construct Binary Tree from Inorder and Postorder Traversal
阅读量:5852 次
发布时间:2019-06-19

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

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

Note:

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

常规方法,以中序为主,在中序中查找根,划分成左右两部分递归,注意要记录左部分个数,后续遍历找根需要,这里没有考虑不能建成树的情况

1 /** 2  * Definition for binary tree 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     TreeNode *buildTree(vector
&inorder, vector
&postorder) {13 int m=inorder.size();14 int n=postorder.size();15 if(m==0||n==0||m!=n) return NULL;     //如果m,n不等,一定不对16 17 return build(inorder,0,n-1,postorder,0,n-1);18 19 }20 TreeNode * build(vector
& inorder,int inl,int inr,vector
&postorder,int pol,int por)21 {22 23 if(inl>inr)24 {25 return NULL;26 }27 int value=postorder[por];28 TreeNode * root=new TreeNode(value);29 int i;30 int count=0;                             //记录左部分个数                     31 for(i=inl;i<=inr;i++)32 {33 if(inorder[i]==value)34 {35 break;36 }37 count++;38 }39 root->left=build(inorder,inl,i-1,postorder,pol,pol+count-1);                   //注意count-140 root->right=build(inorder,i+1,inr,postorder,pol+count,por-1);41 return root;42 43 }44 };

 

 

转载于:https://www.cnblogs.com/zmlctt/p/3684007.html

你可能感兴趣的文章
Eclipse配置python环境
查看>>
第十二周总结
查看>>
Import declarations are not supported by current JavaScript version--JavaScript版本不支持导入声明...
查看>>
js兼容性大全
查看>>
晶振不起振的原因及其解决方法
查看>>
学习目标
查看>>
《利用python进行数据分析》学习笔记--数据聚合与分组(groupby)
查看>>
C++中的函数指针模板
查看>>
2015年个人总结
查看>>
C#编程(六)------------枚举
查看>>
高性能 Windows Socket 组件 HP-Socket v2.3.1-beta-2 发布
查看>>
ZOJ 3316 Game 一般图最大匹配带花树
查看>>
《系统架构师》——操作系统和硬件基础
查看>>
如何看待一本图书
查看>>
angularjs1-7,供应商
查看>>
oracle参数列表
查看>>
Wordpress3.2去除url中的category(不用插件实现)
查看>>
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine-Excel2003
查看>>
《Java 2 图形设计卷Ⅱ- SWING》第12章 轻量容器
查看>>
macOS Sierra 代码显示未来 Mac 将搭载 ARM 芯片
查看>>