def H(s):
if len(tree[s]) == 0:
h[s] = 0
else:
m = 0
for v in tree[s]:
H(v)
m = max(m, h[v]+1)
h[s] = m
n = int(input())
tree = [[0]]
is_root = [1 for _ in range(n+1)]
is_root[0] = 0
h = [0]*(n+1)
for _ in range(n):
temp = list(map(int, input().split()))[1:]
for n in temp:
is_root[n] = 0
tree.append(temp)
root = is_root.index(1)
H(root)
print(root)
print(sum(h))
也可以 dfs 啦.
不要從 root 開始往下走.
從每個節點出發, 遇到葉子就停止. 然後記下這個節點的深度.
下次再走到這個點, 直接 return
用上面的方法
最後一個測資只有一條線
從 最後一個點往前訪問, 就可以解決.
也可以 dfs 啦.
不要從 root 開始往下走.
從每個節點出發, 遇到葉子就停止. 然後記下這個節點的深度.
下次再走到這個點, 直接 return
用上面的方法
最後一個測資只有一條線
從 最後一個點往前訪問, 就可以解決.
照你的方法過了!!謝謝大師指教