博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树的最大深度
阅读量:4165 次
发布时间:2019-05-26

本文共 1054 字,大约阅读时间需要 3 分钟。

一、题目:

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

在这里插入图片描述

二、解题思路:

递归深度遍历二叉树,先左子树再右子树,最后返回左右子树深度的最大值+1(根节点)。

三、代码和结果:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode() : val(0), left(nullptr), right(nullptr) {} *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * };*/class Solution {
public: int getDepth(TreeNode* node) {
if (node == NULL) return 0; int leftDepth = getDepth(node->left); // 左 int rightDepth = getDepth(node->right); // 右 int depth = max(leftDepth, rightDepth); // 中 return depth+1; } int maxDepth(TreeNode* root) {
return getDepth(root); }};/*这个是精简版,核心思想是一样的:class Solution {public: int maxDepth(TreeNode* root) { if(root==0)return 0; return 1+max(maxDepth(root->left),maxDepth(root->right)); }};*/

结果:

在这里插入图片描述
做完这道题可以继续做,多叉树的最大深度,博文:
参考文章:

转载地址:http://enexi.baihongyu.com/

你可能感兴趣的文章
XShell连接ubantu:给ubantu安装ssh
查看>>
c语言的null和0
查看>>
二进制详解:世界上有10种人,一种懂二进制,一种不懂。
查看>>
c语言一个字符变量存储多个字符
查看>>
java接口中方法的默认访问修饰符为public
查看>>
java多线程之并发synchronized
查看>>
java多线程之并发Lock
查看>>
微信公众平台基础配置
查看>>
jpa 和 hibernate 的联系
查看>>
SpringBoot之@SpringBootApplication注解
查看>>
ajax 传JSON 写法
查看>>
SpringBoot之web发展史
查看>>
SpringBoot之开发web页面
查看>>
SpringBoot之快速部署
查看>>
springBoot之jar包在后台(运行:编写start、stop脚本)
查看>>
redis学习
查看>>
SpringBoot之application.properties文件能配置的属性
查看>>
javaWeb监听器、过滤器、拦截器
查看>>
RESTFUL风格的接口
查看>>
后台参数验证配置
查看>>