由整數對(父節點和子節點的關系)組成的二叉樹的高度問題


問題描述:

現在有一顆合法的二叉樹,樹的節點都是數字表示,現在給定這棵樹上所有的父子關系,求這棵樹的高度。

輸入的第一行表示節點個數為n,節點的編號為0到n-1組成,下面是n-1行,每行有兩個整數,第一個數表示父節點的編號,第二個數表示子節點的編號

輸出樹的高度,為一個整數。

樣例輸入:
5
0 1
0 2
1 3
1 4

樣例輸出: 3

 

解答思路:

創建一個map<節點,所在的層>,那么map的values中的最大值即為二叉樹的高度。

import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
Map<Integer,Integer> map = new HashMap<>();
int n = in.nextInt();
for (int i = 0; i<n-1; i++){
int a = in.nextInt();
int b = in.nextInt();
if (map.containsKey(a)){
map.put(b,map.get(a)+1);
}else {
map.put(a,1);
map.put(b,2);
}
}
Collection<Integer> values = map.values();
int max = 0;
for (int value : values){
if (value>0){
max = value;
}
}
System.out.println(max);
}
}
}


ps:不知這種思路是否正確呢?筆試完了才想出來...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM