博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指Offer_编程题_4
阅读量:5124 次
发布时间:2019-06-13

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

题目描述

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
/** * 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* reConstructBinaryTree(vector
pre,vector
vin) { int vinSize = vin.size(); if(vinSize == 0) return NULL; vector
pre_left,pre_right,vin_left,vin_right; int val = pre[0]; int i; for(i = 0; i < vinSize; i ++) { if(vin[i] == val){ break; } } int index = i; TreeNode* tree = new TreeNode(val); for(i = 0; i < vinSize; i++ ) { if(i < index) { vin_left.push_back(vin[i]); pre_left.push_back(pre[i+1]); } else if(i > index) { vin_right.push_back(vin[i]); pre_right.push_back(pre[i]); } } tree->left = reConstructBinaryTree(pre_left,vin_left); tree->right = reConstructBinaryTree(pre_right,vin_right); return tree; } };

  

转载于:https://www.cnblogs.com/grglym/p/8908069.html

你可能感兴趣的文章
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
PyQt5--EventSender
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
tmux的简单快捷键
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
Android打包key密码丢失找回
查看>>
VC6.0调试技巧(一)(转)
查看>>
类库与框架,强类型与弱类型的闲聊
查看>>
php match_model的简单使用
查看>>
SIP服务器性能测试工具SIPp使用指导(转)
查看>>
回调没用,加上iframe提交表单
查看>>
待整理
查看>>
C# 类(10) 抽象类.
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
jvm参数
查看>>
STM32单片机使用注意事项
查看>>