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

最多140个字

文章分类

全部博文(60)

文章存档

2016年(1)

2015年(34)

2014年(25)

分类: C/C++

2015-09-02 09:54: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.  
  10.   int findMid(int* inorder,int size,int x)//在中序遍历中寻找x元素;
  11.  {
  12.      int i=0;
  13.      for(;i<size;i++)
  14.      {
  15.          if(inorder[i]==x)
  16.             return i;
  17.      }
  18.  }
  19. struct TreeNode* buildTree(int* preorder, int preorderSize, int* inorder, int inorderSize) {
  20.     if(preorderSize<=0||inorderSize<=0)
  21.         return NULL;
  22.     struct TreeNode* root=malloc(sizeof(struct TreeNode));
  23.     int mid=preorder[0];
  24.     int left=findMid(inorder,inorderSize,mid);
  25.     root->val=mid;
  26.     root->left=buildTree(preorder+1,left,inorder,left);
  27.     root->right=buildTree(preorder+left+1,preorderSize-left-1,inorder+left+1,inorderSize-left-1);
  28.     return root;
  29. }

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