题解 | #重建二叉树#

重建二叉树

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

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务