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

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

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

Note:

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

Solution:

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    TreeNode *build(vector
&preorder, vector
&inorder, int pre_start, int pre_end, int in_start, int in_end){ if(pre_start > pre_end || in_start > in_end) return NULL; TreeNode *curRoot = new TreeNode(preorder[pre_start]); int rootIndex = -1; for(int i = in_start;i <= in_end;i++) { if(inorder[i] == preorder[pre_start]) { rootIndex = i; break; } } if(rootIndex == -1) return NULL; int leftNum = rootIndex - in_start; curRoot -> left = build(preorder, inorder, pre_start + 1, pre_start + leftNum, in_start, rootIndex - 1); curRoot -> right = build(preorder, inorder, pre_start + leftNum + 1, pre_end, rootIndex + 1, in_end); return curRoot;}TreeNode *buildTree(vector
&preorder, vector
&inorder) { return build(preorder, inorder, 0, preorder.size() - 1, 0, inorder.size() - 1); }};

 

转载于:https://www.cnblogs.com/changchengxiao/p/3619883.html

你可能感兴趣的文章
Win form碎知识点
查看>>
避免使用不必要的浮动
查看>>
第一节:ASP.NET开发环境配置
查看>>
sqlserver database常用命令
查看>>
rsync远程同步的基本配置与使用
查看>>
第二天作业
查看>>
访问属性和访问实例变量的区别
查看>>
Spring MVC 异常处理 - SimpleMappingExceptionResolver
查看>>
props 父组件给子组件传递参数
查看>>
【loj6038】「雅礼集训 2017 Day5」远行 树的直径+并查集+LCT
查看>>
十二种获取Spring的上下文环境ApplicationContext的方法
查看>>
UVA 11346 Probability 概率 (连续概率)
查看>>
linux uniq 命令
查看>>
Openssl rand命令
查看>>
HDU2825 Wireless Password 【AC自动机】【状压DP】
查看>>
BZOJ1015: [JSOI2008]星球大战starwar【并查集】【傻逼题】
查看>>
HUT-XXXX Strange display 容斥定理,线性规划
查看>>
mac修改用户名
查看>>
一道关于员工与部门查询的SQL笔试题
查看>>
Canvas基础
查看>>