社区讨论
关于4个tle,1个re的故事
P4913【深基16.例3】二叉树深度参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo376cs2
- 此快照首次捕获于
- 2023/10/24 01:54 2 年前
- 此快照最后确认于
- 2023/10/24 01:54 2 年前
C
#include<iostream>
using namespace std;
struct node {
int data;
node* lchild;
node* rchild;
};
node* build(int data) {
if (data == 0) {
return NULL;
}
node* root = new node();
root->lchild = root->rchild = NULL;
root->data = data;
return root;
}
node* search(node* root, int x) {
if (root == NULL) {
return NULL;
}
if (root->data == x) {
return root;
}
if (search(root->lchild, x) != NULL) {
return search(root->lchild, x);
}
if (search(root->rchild, x) != NULL) {
return search(root->rchild, x);
}
}
int deep(node* root) {
if (root == NULL){
return 0;
}
int leftdept = deep(root->lchild);
int rightdept = deep(root->rchild);
return 1 + max(leftdept, rightdept);
}
int main() {
int n;
cin >> n;
int arr[1000000][2];
for (int i = 0; i < n; i++) {
cin >> arr[i][0] >> arr[i][1];
}
node* root = build(1);
root->lchild = build(arr[0][0]);
root->rchild = build(arr[0][1]);
for (int i = 1; i < n; i++) {
node* p = search(root, i + 1);
p->lchild = build(arr[i][0]);
p->rchild = build(arr[i][1]);
}
cout << deep(root);
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...