求助带佬,样例过了,但是过不了,请带佬看看建立树的过程是否有误
#include<iostream>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
struct Node {
Node* left;
Node* right;
int val;
Node(int v) {
val = v;
left = NULL;
right = NULL;
}
};
int n;
int dfs(Node* root) {
if (!root) return 0;
int l=dfs(root->left);
int r=dfs(root->right);
if(!l||!r) return l+r+1;
return max(l,r)+1;
}
int main() {
cin >> n;
queue<Node*> q;
Node* root = new Node(1);
q.push(root); int a, b, c = 0;
while (c != n) {
auto x = q.front();
q.pop();
cin >> a >> b;
Node* pleft = new Node(a);
Node* pright = new Node(b);
x->left = pleft;
x->right = pright;
q.push(pleft);
q.push(pright);
c++;
}
cout <<dfs(root) << endl;
return 0;
}