蒟蒻求助
  • 板块灌水区
  • 楼主petrioch
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/9/20 17:39
  • 上次更新2023/11/4 06:03:08
查看原帖
蒟蒻求助
392679
petrioch楼主2021/9/20 17:39

求助带佬,样例过了,但是过不了,请带佬看看建立树的过程是否有误

#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;
}

2021/9/20 17:39
加载中...