题目:
二叉树的最大深度
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的距离。
样例
给出一棵如下的二叉树:
1
/ \
2 3
/ 4 5
这个二叉树的最大深度为3
.
解题:
递归方式求树的深度,记住考研时候考过这一题
Java程序:
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root: The root of binary tree. * @return: An integer. */ public int maxDepth(TreeNode root) { // write your code here if(root==null) return 0; int res = 0; res = depth(res,root); return res; } public int depth(int res,TreeNode root){ if(root==null) return res; if(root.left==null && root.right==null) return res+1; int res1=depth(res,root.left)+1; int res2=depth(res,root.right)+1; res = Math.max(res1,res2); return res; } }
总耗时: 2586 ms
""" Definition of TreeNode: class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None """ class Solution: """ @param root: The root of binary tree. @return: An integer """ def maxDepth(self, root): # write your code here res = 0 res = self.depth(res,root) return res def depth(self,res,root): if root==None: return 0 if root.left==None and root.right==None: return res+1 res1 = self.depth(res,root.left)+1 res2 = self.depth(res,root.right)+1 res = res1 if res1>res2 else res2 return res
总耗时: 835 ms
时间: 2024-10-07 22:59:39