給定一個二叉樹,求出其最大的深度,也就是根節點到葉子節點的距離。首先想到的是用遞歸的方法,依次求出每一個節點的最大深度直到葉子結點。每一個節點的最大深度都是左右子樹較大的深度再加當前深度1,即每次遞歸返回Max(left,right)+1,葉子結點也就是遞歸結束條件,返回0。這有點像動態規劃,代碼如下:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
int deep;
public int maxDepth(TreeNode root) {
if(root==null)
return 0;
int l = maxDepth(root.left)+1;
int r = maxDepth(root.right)+1;
return Math.max(l,r);
}
}