小米笔试!!!求树的深度,全部AC,构建树-->求树的深度
import java.util.Scanner;
class TNode{
private int value;
public TNode left = null;
public TNode right = null;
public TNode(int i){
this.value = i;
}
}
public class xiaomi3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int nodeNum = scanner.nextInt();
TNode[] treeNodes = new TNode[nodeNum];
for(int i = 0; i < nodeNum; i++)
treeNodes[i] = new TNode(i);
for(int i = 0; i < nodeNum - 1; i++){
int row = scanner.nextInt();
int col = scanner.nextInt();
if(treeNodes[row].left == null)
treeNodes[row].left = treeNodes[col];
else
treeNodes[row].right = treeNodes[col];
}
int max = 0;
for(int i = 0; i < nodeNum; i++){
int height = getMaxDepth(treeNodes[i]);
if(height > max)
max = height;
}
System.out.println(max);
}
}
// 获取最大深度
public static int getMaxDepth(TNode root) {
if (root == null)
return 0;
else {
int left = getMaxDepth(root.left);
int right = getMaxDepth(root.right);
return 1 + Math.max(left, right);
}
}
}
坑就是在于根节点的不一定。
#小米#

