P4913 【深基16.例3】二叉树深度
题目描述
有一个 0 0
。
建好这棵二叉树之后,请求出它的深度。二叉树的深度是指从根节点到叶子结点时,最多经过了几层。
输入格式
第一行一个整数
之后
输出格式
一个整数,表示最大结点深度。
输入输出样例 #1
输入 #1
7 2 7 3 6 4 5 0 0 0 0 0 0 0 0
输出 #1
4
题解
#include <bits/stdc++.h> using namespace std; struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x):val(x),left(nullptr),right(nullptr){} }; int depth(TreeNode* root) { if(root==nullptr) return 0; return max(depth(root->left),depth(root->right))+1; } int main() { int n; cin>>n; unordered_set<int> myset={0}; vector<TreeNode*> tree={n+1,nullptr}; for (int i=0;i<n;i++) { int a,b; cin>>a>>b; if(tree[i+1]==nullptr) { tree[i+1]=new TreeNode(i+1); } if(tree[a]==nullptr&&a!=0&&!myset.count(a)) { tree[a]=new TreeNode(a); } if(tree[b]==nullptr&&b!=0&&!myset.count(b)) { tree[b]=new TreeNode(b); } if(a!=0) tree[i+1]->left=tree[a]; if(b!=0) tree[i+1]->right=tree[b]; myset.insert(a); myset.insert(b); } cout<<depth(tree[1]); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律