Chinaunix首页 | 论坛 | 博客
  • 博客访问: 353589
  • 博文数量: 60
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 1138
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-20 16:18
个人简介

最多140个字

文章分类

全部博文(60)

文章存档

2016年(1)

2015年(34)

2014年(25)

分类: C/C++

2015-09-02 09:43:00


  1. /**
  2.  * Definition for a binary tree node.
  3.  * struct TreeNode {
  4.  * int val;
  5.  * struct TreeNode *left;
  6.  * struct TreeNode *right;
  7.  * };
  8.  */
  9.  int findMid(int* inorder,int size,int x)//在中序遍历中寻找x元素;
  10.  {
  11.      int i=0;
  12.      for(;i<size;i++)
  13.      {
  14.          if(inorder[i]==x)
  15.             return i;
  16.      }
  17.  }
  18. struct TreeNode* buildTree(int* inorder, int inorderSize, int* postorder, int postorderSize) {
  19.     if(inorderSize<=0||postorderSize<=0)
  20.         return NULL;
  21.     struct TreeNode *root=malloc(sizeof(struct TreeNode));
  22.     int mid=postorder[postorderSize-1];
  23.     int left=findMid(inorder,inorderSize,mid);
  24.     root->val=mid;
  25.     root->left=buildTree(inorder,left,postorder,left);
  26.     root->right=buildTree(inorder+left+1,inorderSize-left-1,postorder+left,postorderSize-left-1);
  27.     return root;
  28. }

阅读(3281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~