标签:
LeetCode104: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 /**
2 * Definition for binary tree
3 * public class TreeNode {
4 * int val;
5 * TreeNode left;
6 * TreeNode right;
7 * TreeNode(int x) { val = x; }
8 * }
9 */
基于问题,考虑使用分治递归的思想,将问题转化:当前节点左子树与右子树的最大深度+1 = 当前树的最大深度
逐层下推直到不再有子节点为止,于是能得出递归返回条件:
if(root == null){
return 0;
}
递归策略:当前节点左子树和当前节点右子树
最终结果:当前树的最大深度 = 当前节点左子树与右子树的最大深度+1
完整代码如下:
1 public class Solution {
2 public int maxDepth(TreeNode root) {
3 if(root == null){
4 return 0;
5 }
6 int left = maxDepth(root.left);
7 int right = maxDepth(root.right);
8 return 1+Math.max(left,right);
9 }
10 }
学习笔记:LeetCode104:Maximum Depth of Binary Tree
标签:
原文地址:http://www.cnblogs.com/lzypan812/p/4391716.html