首页 > 其他分享 >学习(二叉树中序遍历)

学习(二叉树中序遍历)

时间:2022-10-17 21:35:47浏览次数:55  
标签:遍历 struct returnSize int 中序 ret numRows 二叉树 数组

1、108、将有序数组转换为二叉搜索树(重点)

struct TreeNode* helper(int* nums, int left, int right) {//用一个有序数组来建一个名叫helper的二叉树
    if (left > right) {//有序数组
        return NULL;
    }

    // 总是选择中间位置左边的数字作为根节点
    int mid = (left + right) / 2;
    struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));//给root分配了一个struct Treenode型指针的内存空间,第二个struct TreeNode*的意思是申请的空间的地址转化成了struct TreeNode型的地址
    root->val = nums[mid];
    root->left = helper(nums, left, mid - 1);
    root->right = helper(nums, mid + 1, right);
    return root;
}

struct TreeNode* sortedArrayToBST(int* nums, int numsSize) {
    return helper(nums, 0, numsSize - 1);
}

2、杨辉三角

/**
 * Return an array of arrays of size *returnSize.返回大小为*returnSize的数组的数组
 * The sizes of the arrays are returned as *returnColumnSizes array.数组的大小以*returnColumnSizes形式返回列大小数组 指向列数组指针的指针、注意:列数组在哪我们无从得知,也不需要知道、我们只要知道有个一阶指针指向它就行了,我把它叫做列数组指针
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().注意:返回的数组和 *columnSizes 数组都必须是 malloced,假设调用者调用 free()
 */
int** generate(int numRows, int* returnSize, int** returnColumnSizes) {// **generate是二维数组,returnSize是一阶指针,*returnSize是值,
    int** ret = malloc(sizeof(int*) * numRows);//共有numRows行
    *returnSize = numRows;//returnSize是行数
    *returnColumnSizes = malloc(sizeof(int) * numRows);//列数组指针申请了numRows的空间,列数和行数相等
    for (int i = 0; i < numRows; ++i) {//i行
        ret[i] = malloc(sizeof(int) * (i + 1));//第i行(数组中第i行的位置)行数申请i+1(i从0开始)个空间
        (*returnColumnSizes)[i] = i + 1; //
 /*returnColumnSizes 在主函数中应该是一个一维数组,每个元素代表了当前排有多少个有效的列,一般这种题会有一个配套的 returnSize 代表共有多少排,这个一维数组,配合着排的总数,就可以让 Leetcode 后台去检查你的答案了。*/ //列数,在列数指针的位置的数组赋值为i+1表示有i+1列(i从0开始)
        ret[i][0] = ret[i][i] = 1;
        for (int j = 1; j < i; ++j) {
            ret[i][j] = ret[i - 1][j] + ret[i - 1][j - 1];
        }
    }
    return ret;
}

总结:行:numRows=returnSize  列:returnColumnSizes

标签:遍历,struct,returnSize,int,中序,ret,numRows,二叉树,数组
From: https://www.cnblogs.com/zhishiyigenicheng/p/16800762.html

相关文章