# 接收节点个数
n = int(input())
# 设置各节点默认高度为1
tree = [1] * n
# 设置各节点默认子节点数为0
childNum = [0] * n
# 遍历后续输入的n-1行数据,依次处理
for i in range(n-1):
# 将输入的行数据按空格拆分,第一个是当前节点的父节点,第二个是当前节点
listTemp = input().split(" ")
parent = int(listTemp[0])
node = int(listTemp[1])
# 如果当前节点的父节点的子节点数大于等于2,则已不满足二叉树规范,需减掉此节点,不做后续操作
if childNum[parent] >= 2:
tree[node] = 0
continue
# 当前节点的高度,在父节点的高度上+1
tree[node] = tree[parent] + 1
# 当前节点的父节点的子节点数加上当前节点(+1)
childNum[parent] += 1
# 打印各节点高度列表中,最大值
print(max(tree)) 


京公网安备 11010502036488号