JZ55 二叉树的深度
暴搜:两种个思路:DFS和BFS
DFS:
里面有个容易误会的地方:每次迭代+1,不是针对子叶来说的,而是针对当前点来说的,由于遍历是自底向上的,因此当前遍历到的点对于已经遍历到的点来说就是根,因此深度+1.
class Solution { public: int TreeDepth(TreeNode* pRoot) { if(pRoot == nullptr) return 0; return max(TreeDepth(pRoot->left), TreeDepth(pRoot->right)) + 1; } };
BFS:
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: int TreeDepth(TreeNode* pRoot) { if(pRoot == nullptr) return 0; queue<TreeNode*> q; q.push(pRoot); int res = 0; while(!q.empty()) { int n = q.size(); // 遍历当前层的每个点 for(int i = 0; i < n; i ++ ){ TreeNode *node = q.front(); q.pop(); if(node->left) q.push(node->left); if(node->right) q.push(node->right); } res ++; } return res; } };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?