题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
解题思路
1,如果为叶子节点,则深度为0
2,递归调用左右子节点,每个根节点的深度都是左右子树深的那一个+1
代码
/** * */ package offerTest; /** * <p> * Title:Deep * </p> * <p> * Description: * </p> * * @author 田茂林 * @data 2017年8月21日 上午9:35:29 */ public class Deep { public int TreeDepth(TreeNode root) { int deep = 0; if (root == null) { //递归结束条件 return 0; } int leftdeep = TreeDepth(root.left); //左子树的深度为 int rightdeep = TreeDepth(root.right); //右子树的深度为 deep = leftdeep > rightdeep ? leftdeep + 1 : rightdeep + 1; //该树的深度为 return deep; } }