104. 二叉树的最大深度

Posted Debroon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了104. 二叉树的最大深度相关的知识,希望对你有一定的参考价值。

104. 二叉树的最大深度

 


题目

传送门:https://leetcode.cn/problems/maximum-depth-of-binary-tree/


 


算法设计:回溯

回溯框架,请猛击:《常见递归模式》。

思路:遍历一遍二叉树,用一个外部变量记录每个节点所在的深度,取最大值就可以得到最大深度,这就是遍历二叉树计算答案的思路。

递归函数 = 回溯模式 + 前序位置 + 做某事(选出最大深度)

class Solution 
        int res = 0;
		int depth = 0;  // 记录遍历到的节点的深度
public:
    int maxDepth(TreeNode *root) 
		recall(root);
    	return res;
    
	
	void recall(TreeNode *root) 
   		if (root == nullptr) 
        	return;
    
    	depth++;
    	res = max(res, depth);
    	recall(root->left);
    	recall(root->right);
    	depth--;
	
;

 


算法设计:分解子问题

分解子问题框架,请猛击:《常见递归模式》。

一棵二叉树的最大深度可以通过子树的最大深度推导出来。

递归函数 = 分解子问题模式 + 后序位置 + 做某事【树的深度 = max(左子树最大深度 + 右子树最大深度)+ 根节点自己】

class Solution 
public:
    int maxDepth(TreeNode* root) 
        if (root == nullptr) return 0;
        return max(maxDepth(root->left), maxDepth(root->right)) + 1;
    
;

以上是关于104. 二叉树的最大深度的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 104. 二叉树的最大深度

Leetcode题目104.二叉树的最大深度(DFS+BFS简单)

104. 二叉树的最大深度简单树DFS

104. 二叉树的最大深度简单树DFS

刷题18:二叉树的最大深度

漫画:二叉树系列 第一讲(最大深度与DFS) 修订版