社区讨论

关于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 条回复,欢迎继续交流。

正在加载回复...