Leetcode: 104. Maximum Depth of Binary Tree

题目:

      Given a binary tree, find its maximum depth.

      The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

      给定一颗二叉树,求解树的深度。

求解思路:

    (1)当树为空时,返回0;

    (2)当树不为空时,使用分治法,分别求解左子树和右子树的深度。使用递归来实现。

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 public class Solution {
11     public int maxDepth(TreeNode root) {
12         if(root==null){
13             return 0;
14         }
15        
16         int leftDepth = maxDepth(root.left);   //计算左子树的深度
17         int rightDepth = maxDepth(root.right); //计算右子树的深度
18         
19         return 1 + (leftDepth > rightDepth ? leftDepth : rightDepth);
20     }
21 }

 

posted @ 2017-01-25 13:03  tmx  阅读(139)  评论(0编辑  收藏  举报