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 }