剑指offer:二叉树的深度

傷城~ 2022-04-10 09:15 303阅读 0赞

题目描述

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

AC C++ Solution:

递归

  1. class Solution {
  2. public:
  3. int TreeDepth(TreeNode* pRoot)
  4. {
  5. if(pRoot == NULL)
  6. return 0;
  7. return max(TreeDepth(pRoot->left),TreeDepth(pRoot->right)) + 1;
  8. }
  9. };

非递归:

  1. class Solution {
  2. public:
  3. int TreeDepth(TreeNode* pRoot)
  4. {
  5. if(pRoot == nullptr)
  6. return 0;
  7. queue<TreeNode*> q;
  8. q.push(pRoot);
  9. int level = 0;
  10. while(!q.empty()) {
  11. int n = q.size();
  12. level++;
  13. while(n--) {
  14. TreeNode* node = q.front();
  15. q.pop();
  16. if(node->left)
  17. q.push(node->left);
  18. if(node->right)
  19. q.push(node->right);
  20. }
  21. }
  22. return level;
  23. }
  24. };

发表评论

表情:
评论列表 (有 0 条评论,303人围观)

还没有评论,来说两句吧...

相关阅读

    相关 offer 深度

    [剑指offer题型分类及各题的代码及解题思路][offer] 1、题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树...

    相关 Offer | 深度

    一、题目 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 二、思路 (1) 递归的思想适合

    相关 offer:深度

    题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 AC C++ Solution:

    相关 Offer-深度

    题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 解题思路—使用堆栈:使用堆栈依次压入