讨论/题目交流/二叉树的层次遍历/
二叉树的层次遍历

二叉树的层次遍历问题

代码块int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes){
    //空间申请;
    *returnSize=0;
    int **ret=(int **)malloc(sizeof(int *)*1000);
    *returnColumnSizes=(int *)malloc(sizeof(int)*1000) ;
    if(root==NULL)
    return NULL; 
   // 定义队列;
    struct TreeNode *arry[10000];   
    int rear=0, front=0, levelnumber ,i;    // rear 指向队尾,front 指向队尾;
    arry[rear++]=root;                       // 入队;    
    levelnumber=rear-front;                   // 计算队列中的总的元素;
while(levelnumber>0)                            
{
      ret[*returnSize]=(int *)malloc(sizeof(int)*levelnumber);                // 申请每一层的数目;
      returnColumnSizes[0][*returnSize] = levelnumber;                        // 记录每层的个数;
      for(i=0;i<levelnumber;i++)
      {
34 line//
              if(arry[front]->left!=NULL)                                   //将队首元素看作父节点,分别找它的左右孩子,存入arry[]; 
              {
              arry[rear++]==arry[front]->left;
              }
              if(arry[front]->right!=NULL) {
              arry[rear++]=arry[front]->right;
              }
              ret[*returnSize][i] = arry[front]->val;                         // 将元素入对应层;
              front++;                                                       // 元素出队;
      }
      levelnumber=rear-front;                                               // 计算该队列的长度;
}
 return ret;
}
  • 102|二叉树的层序遍历|中等|
    出现了:Line 34: Char 29: runtime error: member access within null pointer of type 'struct TreeNode' (solution.c) //试图使用空指针但是我在队列为空时跳出循环,在这之前,arry[front]应该永远不为空啊??? 这是什么问题**?
展开讨论
共 0 个讨论
无讨论