剑指offer 二叉树重建
来源:互联网 发布:浅谈软件测试技术 编辑:程序博客网 时间:2024/06/05 23:54
问题描述:
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果都不含重复的数字。假如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序序列{4,7,2,1,5,3,8,6},则重建二叉树并返回
#include<stdio.h>#include<malloc.h>typedef struct Node{struct Node *left;struct Node *right;int value; }Node;Node *creatBinaryTree(int *pre,int *mid,int length){int i,pos;int preLeft[8],preRight[8],midLeft[8],midRight[8];Node *root;root = (Node*)malloc(sizeof(Node));root->value = pre[0];if(length>0){for(pos = 0;pos<length;pos++){if(pre[0] == mid[pos])break;}for(i = 0;i<pos;i++){preLeft[i] = pre[i+1];midLeft[i] = mid[i];}for(i = pos+1;i<length;i++){preRight[i-pos-1] = pre[i];midRight[i-pos-1] = mid[i];}root->left = creatBinaryTree(preLeft,midLeft,pos);root->right = creatBinaryTree(preRight,midRight,length - pos - 1);}return root;}int main(){int pre[8] = {1,2,4,7,3,5,6,8};int mid[8] = {4,7,2,1,5,3,8,6};Node *root;root = (Node*) malloc(sizeof(Node));root = creatBinaryTree(pre,mid,8);printf("%d",root->left->left->right->value); }
阅读全文
0 0
- [剑指offer]重建二叉树
- 【剑指offer】重建二叉树
- 剑指offer--重建二叉树
- 剑指offer---重建二叉树
- 剑指Offer-重建二叉树
- 剑指offer:重建二叉树
- 剑指offer-重建二叉树
- 《剑指offer》重建二叉树
- 【剑指Offer】重建二叉树
- 剑指offer-重建二叉树
- 《剑指offer》-重建二叉树
- 剑指offer 重建二叉树
- 剑指offer:重建二叉树
- 【剑指offer】重建二叉树
- 剑指offer 重建二叉树
- [剑指offer]重建二叉树
- 剑指offer--重建二叉树
- 《剑指offer》重建二叉树
- 导数,偏导,方向倒数,梯度
- 多线程
- IP多播
- Linux 安装SVN服务器配置
- 【Unity】Unity中的异步编程技术详解
- 剑指offer 二叉树重建
- 谈谈Webview优化
- 计数器参数详解
- CentOS VMware Tools 安装手册
- suse Linux下安装SVN客户端
- 用JAVASwing实现模拟磁盘调度
- <Effective C++> Item 29:争取异常安全的代码
- 邹博机器学习代码分析(1)-线性回归
- C++每日一课(一)