题解 | #重建二叉树#

重建二叉树

http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6

/**
 * struct TreeNode {
 *    int val;
 *    struct TreeNode *left;
 *    struct TreeNode *right;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param pre int整型一维数组 
 * @param preLen int pre数组长度
 * @param vin int整型一维数组 
 * @param vinLen int vin数组长度
 * @return TreeNode类
 */
struct TreeNode* reConstructBinaryTree(int* pre, int preLen, int* vin, int vinLen ) {
   if(preLen==0){
       return NULL;
   }else{
       struct TreeNode* head=(struct TreeNode*)malloc(sizeof(struct TreeNode));
       int k=0;int length_left=0;int length_right=0;
       head->val=*pre;
       while(k<preLen){
           if(pre[0]==vin[k]){break;}
           else{k++;}
       }length_left=k;
       length_right=vinLen-k-1;
       head->left=reConstructBinaryTree(pre+1,k,vin,k);
       head->right=reConstructBinaryTree(pre+1+k,vinLen-k-1,vin+k+1,vinLen-k-1);
       return head;
   }   
}
全部评论

相关推荐

06-04 16:50
腾讯_TEG_技术
点赞 评论 收藏
分享
自由水:这HR已经很好了,多的是已读不回和不读了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务