Man*_*son 1 c tree recursion binary-tree insertion
所以我试图使用这个递归函数将值插入二叉树:
void add(node* *hd, int v){
node* curr = *hd;
if(curr == NULL){
curr = (node*)malloc(sizeof(node));
curr->value = v;
}else{
if(v < curr->value){
add(&curr->left, v);
}else{
add(&curr->right, v);
}
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎没有用,我只是不明白为什么我不能做这样的事情.我该怎么办呢?
您需要初始化指针,因为它们可能会设置为分配空间时获得的任何内容.你现在通过的时候add(&curr->left, v); curr->left可能不是指针,但它仍然不是NULL;
void add(node* *hd, int v){
node* curr = *hd;
if(curr == NULL){
curr = malloc(sizeof(node));
curr->left = curr->right = NULL;
curr->value = v;
*hd = curr; // from Mohamed KALLEL
}else{
if(v < curr->value){
add(&curr->left, v);
}else{
add(&curr->right, v);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9499 次 |
| 最近记录: |