题解 | #重建二叉树#

重建二叉树

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;
   }   
}
全部评论

相关推荐

不知道怎么取名字_:两个方向 1.简历针对性准备下 2.面试前也需要准备的 主要还是要看各个公司需求,看公司行业和岗位描述,那里面已经写了对技术的需求,一份简历,不可能和所有嵌入式岗位都匹配的
投递北京经纬恒润科技股份有限公司等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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