临睡前必须把今天的一个算法题目完成了!不然心里不舒服!哈哈。。。。
题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
在线编程:
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
};*/
public class Solution {
/*
这道题给我的思想就是:拿到题目之后仔细分析,不能急着去写代码
静下心来分析会发现是这样的:如果二叉树只有左子树,那么深度就是左子树的深度+1
如果只有右子树,那么深度就是右子树的深度+1;如果左右字数都存在,则选择最大的一个;
*/
public int TreeDepth(TreeNode pRoot)
{
if(pRoot==null){
return 0;
}
int left=TreeDepth(pRoot.left);
int right=TreeDepth(pRoot.right);
return left>right?(left+1):(right+1);
}
}