/* * @lc app=leetcode.cn id=104 lang=c * * [104] 二叉树的最大深度 * * https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/description/ * * algorithms * Easy (67.34%) * Total Accepted: 33.2K * Total Submissions: 49.2K * Testcase Example: '[3,9,20,null,null,15,7]' * * 给定一个二叉树,找出其最大深度。 * * 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 * * 说明: 叶子节点是指没有子节点的节点。 * * 示例: * 给定二叉树 [3,9,20,null,null,15,7], * * 3 * / \ * 9 20 * / \ * 15 7 * * 返回它的最大深度 3 。 * */ /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int maxDepth(struct TreeNode* root) { if(root==NULL) return 0; int l1 = maxDepth(root->left); int l2 = maxDepth(root->right); return ((l1>l2)?l1:l2)+1; }
这道题思路很简单,就是左子树深度和右子树深度更大的一个就是二叉树的最大深度。
----------------------------------------------------------------------------------------------------------------
python;
# # @lc app=leetcode.cn id=104 lang=python3 # # [104] 二叉树的最大深度 # # https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/description/ # # algorithms # Easy (67.34%) # Total Accepted: 33.2K # Total Submissions: 49.2K # Testcase Example: '[3,9,20,null,null,15,7]' # # 给定一个二叉树,找出其最大深度。 # # 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 # # 说明: 叶子节点是指没有子节点的节点。 # # 示例: # 给定二叉树 [3,9,20,null,null,15,7], # # 3 # / \ # 9 20 # / \ # 15 7 # # 返回它的最大深度 3 。 # # # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def maxDepth(self, root): if root == None: return 0 else: return max(self.maxDepth(root.left),self.maxDepth(root.right))+1