【剑指offr--C/C++】JZ55 二叉树的深度

一、题目

这里是引用
在这里插入图片描述

求二叉树深度两个思路:递归、层次遍历。

二、递归思路及代码
每一个节点的深度都=max{左子树深度,右子树深度}+1。所以可以使用递归

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
#include <queue>
class Solution {
public:
    int TreeDepth(TreeNode* pRoot) {
        if(pRoot==NULL) return 0;
        int leftData=TreeDepth(pRoot->left);//左树深度
        int rightData=TreeDepth(pRoot->right);//右树深度
        int rootData=leftData>rightData?leftData:rightData;//取较大值
        return rootData+1;//加上自己这一层
    
    }
};

三、层次遍历思路及代码
//层次遍历:用队列辅助
//先将root放进去,记录当前这一层的节点个数,
//然后依次取出这一层节点并将其左右子节点放进去
//层数+1
//重复上述步骤直到节点遍历完成

/*
struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
#include <queue>
class Solution {
public:
    int TreeDepth(TreeNode* pRoot) {

		if(pRoot==NULL) return 0;
		queue<TreeNode*> nodeQue;
		int dep=0;
		TreeNode* root=pRoot;
	    nodeQue.push(root);
		while(!nodeQue.empty()){
			int n=nodeQue.size();
			for(int i=0;i<n;i++){
				TreeNode *node=nodeQue.front();
				if(node->left){
                  nodeQue.push(node->left);
				}
				if(node->right){
                  nodeQue.push(node->right);
				}
				
				nodeQue.pop();
			}
			dep+=1;
		}
		return dep;
    
    }
};

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 21:22:09       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 21:22:09       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 21:22:09       87 阅读
  4. Python语言-面向对象

    2024-04-05 21:22:09       96 阅读

热门阅读

  1. C++ templates: (4)、引用折叠

    2024-04-05 21:22:09       34 阅读
  2. 题目:求一个3*3矩阵对角线元素之和

    2024-04-05 21:22:09       33 阅读
  3. React 18 中常见的生命周期方法

    2024-04-05 21:22:09       37 阅读
  4. c语言:用for循环输出前n的阶乘

    2024-04-05 21:22:09       32 阅读
  5. 开发语言漫谈-C语言

    2024-04-05 21:22:09       40 阅读
  6. Servlet

    Servlet

    2024-04-05 21:22:09      35 阅读
  7. react 组件:Suspense

    2024-04-05 21:22:09       39 阅读
  8. 物理安全和逻辑安全在信息安全中的重要作用

    2024-04-05 21:22:09       31 阅读
  9. vue3+uniapp 动态渲染组件,兼容h5、app端

    2024-04-05 21:22:09       36 阅读
  10. 顺序表的动态实现

    2024-04-05 21:22:09       37 阅读