本题我用了树节点结构体数组建树,后面就是普通的求树高的代码,在自己电脑上运行没问题。在系统上显示都是运行错误,具体为“Segmentation fault with invalid memory reference.”
求大佬帮助,感谢感谢感谢!!!!!
#include<iostream>
using namespace std;
struct treenode
{
treenode* left = NULL;
treenode* right = NULL;
};
int getheight(treenode* a)
{
int hl, hr, h;
if (a == NULL)return 0;
else
{
hl = getheight(a->left);
hr = getheight(a->right);
h = max(hl, hr) + 1;
return h;
}
}
int main()
{
int n;
cin >> n;
treenode* tree = new treenode[n];
for (int i = 0;i < n;i++)
{
int a, b;
cin >> a >> b;
if (a == 0 && b == 0)
continue;
else
{
tree[i].left = &tree[a - 1];
tree[i].right = &tree[b - 1];
}
}
cout << getheight(&tree[0]);
system("pause");
}