题解 | #重建二叉树#

重建二叉树

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

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param preOrder int整型一维数组 
 * @param preOrderLen int preOrder数组长度
 * @param vinOrder int整型一维数组 
 * @param vinOrderLen int vinOrder数组长度
 * @return TreeNode类
 */

int pn = 0;
struct TreeNode* dg(int* preOrder, int* vinOrder, int start, int end) {
    int i;
    struct TreeNode* tree;
    if(start > end) return NULL;
    for(i = start; i <= end; i++) {
        if(preOrder[pn] == vinOrder[i]) {
            struct TreeNode* t = (struct TreeNode*)malloc(sizeof(struct TreeNode*));
            tree = t;
            tree->val = preOrder[pn];
            pn++;
            tree->left = dg(preOrder, vinOrder, start, i - 1);
            tree->right = dg(preOrder, vinOrder, i + 1, end);
            break;
        }
    }
    return tree;
}

struct TreeNode* reConstructBinaryTree(int* preOrder, int preOrderLen, int* vinOrder, int vinOrderLen ) {
    // write code here
    if(preOrderLen == 0 || vinOrderLen == 0) return NULL;
    struct TreeNode* tree;
    tree = dg(preOrder, vinOrder, 0, vinOrderLen - 1);
    return tree;
}

全部评论

相关推荐

05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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