小米笔试!!!求树的深度,全部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); } } }
坑就是在于根节点的不一定。
#小米#