博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer 重建二叉树
阅读量:5127 次
发布时间:2019-06-13

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

题目描述

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回
思路:首先找到root,然后递归的重建root -> left,root -> right。
/**      * Definition for binary tree      * struct TreeNode {      *     int val;      *     TreeNode *left;      *     TreeNode *right;      *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}      * };      */     class Solution {     public:         struct TreeNode* reConstructBinaryTree(vector
pre,vector
in) { int inlen=in.size(); if(inlen==0) return NULL; vector
left_pre,right_pre,left_in,right_in; //创建根节点,根节点肯定是前序遍历的第一个数 TreeNode* head=new TreeNode(pre[0]); //找到中序遍历根节点所在位置,存放于变量gen中 int gen=0; for(int i=0;i
left=reConstructBinaryTree(left_pre,left_in); head->right=reConstructBinaryTree(right_pre,right_in); return head; } };

 

转载于:https://www.cnblogs.com/dingxiaoqiang/p/7455502.html

你可能感兴趣的文章
Linux 下Makefile教程
查看>>
[转]MSP430另一种UART实现
查看>>
myeclipse部署多个web工程
查看>>
tcp_协议基础
查看>>
layui弹窗 之 iframe关闭
查看>>
【BZOJ2565】最长双回文串 Manacher
查看>>
There is no PasswordEncoder mapped for the id "null"
查看>>
windows10 conda python多版本切换
查看>>
Linux配置日志服务器
查看>>
P6 EPPM 16.1 安装和配置指南 1
查看>>
C语言:九九乘法表打印
查看>>
Java_Activiti5_菜鸟也来学Activiti5工作流_之JUnit单元测试(四)
查看>>
codeforce626D (概率)
查看>>
HD1385Minimum Transport Cost(Floyd + 输出路径)
查看>>
Ajax技术
查看>>
MVC解决方案发布IIS 登录页面需要输入两次帐号问题
查看>>
Visual Studio 2017 初次体验
查看>>
zTree树
查看>>
tips 前端 点击事件
查看>>
ACM: 限时训练题解-Epic Professor-水题
查看>>