前言:
当前看官们对“求二叉树深度代码”大致比较重视,姐妹们都想要分析一些“求二叉树深度代码”的相关知识。那么小编同时在网摘上网罗了一些有关“求二叉树深度代码””的相关文章,希望我们能喜欢,看官们一起来了解一下吧!题目描述
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例
输入:
3 / \ 9 20 / \ 15 7
输出:
3写在前面
就这就这??[看]
本文答案参考自 LeetCode 官方题解。
解法1:深度优先遍历
先使 dfs “向下”遍历,当遇到叶子节点时,返回0.
然后函数层层“上升”,返回其 左子树 和 右子树 的层数 的最大值 再加1
(建议直接看代码[捂脸])
代码
int maxDepth(TreeNode* node) { if (node == nullptr) return 0; return max(maxDepth(node->left), maxDepth(node->right)) + 1;}作者:LeetCode-Solution链接:来源:力扣(LeetCode)
你看代码多简单啊~ (*^▽^*)
解法2:广度优先遍历
就像正常人([看])一样,一层一层地数出来。
在进行广度优先遍历时也顺便记录一下层数。
代码
int maxDepth(TreeNode* root) { Queue<TreeNode*> q; q.push(root); int ans = 0; while (!q.empty()) { int size = q.size(); while (size > 0) { TreeNode* node = q.front();q.pop(); if (node->left) q.push(node->left); if (node->right) q.push(node->right); size -= 1; } ans += 1; } return ans;}作者:LeetCode-Solution链接:来源:力扣(LeetCode)
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #求二叉树深度代码