標籤:
題目:
二叉樹的最大深度
給定一個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的距離。
範例
給出一棵如下的二叉樹:
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; }}View Code
總耗時: 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
View Code
總耗時: 835 ms
lintcode 容易題:Maximum Depth of Binary Tree 二叉樹的最大深度