《程序猿笔试题系列》一:二叉树的深度
题目:
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
解答:
查询树的深度我们可以这样想:左边的子树和右边的字数比,谁大就返回谁,那么再接上根节点+1就可以了。
public static int getHeight(HeroNode root) {
if (root == null) {
return 0;
} else {
//左边的子树深度
int left = getHeight(root.getLeft());
//右边的子树深度
int right = getHeight(root.getRight());
int max = left;
if (right > max) {
max = right;
}
return max + 1;
}
}
//或者
public static int TreeDepth(HeroNode root) {
if(root == null)return 0;
int leftDepth = TreeDepth(root.getLeft());
int rightDepth = TreeDepth(root.getRight());
int result = 1 + ((leftDepth > rightDepth)?leftDepth:rightDepth);
return result;
}
二叉树可以说是面试中常见的面试题了,上面只是给大家介绍了简单的一个面试题。如果大家对二叉树有不了解的话,请留言,留言比较多的话,后面将写一篇关于二叉树的文章,为大家详细介绍一下二叉树的结构及常见的相关面试题等。
- THE END -
作者简介
Mr.W
白天搬砖,晚上砌梦想。
相信每个人有故事,程序员更是有许多事故,书写最接地气的程序员故事,为大家找出更好的资料。