0
Я пишу код для вычисления общего числа корневых путей листьев в двоичном дереве в C++.Когда я делаю утверждение root-> right-> right = newnode (7); комментарий, компилятор показывает ошибку времени выполнения. Может кто-нибудь объяснить, почему?
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<queue>
using namespace std;
struct node
{int data;
struct node *left;
struct node *right;
};
struct node* newnode(int data)
{struct node* node = (struct node*)malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
int root_to_leaf_paths(struct node *root)
{if(root->left == NULL && root->right == NULL)
return 1;
else if(root == NULL)
return 0;
else
return(root_to_leaf_paths(root->left)+root_to_leaf_paths(root->right));
}
int main()
{
struct node *root = newnode(1);
root->left = newnode(2);
root->right = newnode(3);
root->left->left = newnode(4);
root->left->right = newnode(5);
root->right->left = newnode(6);
Когда я добавляю, сделайте комментарий ниже, компилятор показывает ошибку времени выполнения.
**//root->right->right = newnode(7);**
printf("%d",root_to_leaf_paths(root));
}
Какого компилятора вы используете? И это дает сообщение об ошибке? – chtz
@chtz Я использую компилятор gcc +5.1. Он показывает сообщение об ошибке «Ошибка выполнения». –
@pang Это C++. –