好像 递归还是输入出问题了 没有反应一直
样例在图里 问题代码在下面。能麻烦给说几句么dbq
#include
#include
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode() : val(0), left(nullptr), right(nullptr) {}
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
TreeNode(int x, TreeNode* left, TreeNode* right) : val(x), left(left), right(right) {}
};
class BST
{
public:
TreeNode* root;
BST() { root = NULL; }
};
int maxDepth(TreeNode* root) {
if (root == nullptr) return 0;
return max(maxDepth(root->left), maxDepth(root->right)) + 1;
}
TreeNode* BuildTree(TreeNode*root,const int&s)
{
if (root == NULL)
return new TreeNode(s, NULL, NULL);
if (s < root->val)
root->left = BuildTree(root->left, s);
else if(s >= root->val)
root->right = BuildTree(root->right, s);
}
int main()
{
int n; int num; int arry[200];
while(cin>>n)
{
for (int i = 0;i<n;i++)
{
BST TR;
while (cin >> num)
{
BuildTree(TR.root, num);
char ch = cin.get();
if (ch == '\n')
break;
}
arry[i] = maxDepth(TR.root);
}
}
for(int j=0;j<n;j++)
{
cout << arry[j] << endl;
}
}