深度优先遍历
1 构造 是否遍历过数组
2 构造队列 添加未遍历过元素
3 取元素 遍历 添加未遍历元素进队列
4 全部遍历完
最后一个遍历的节点 就是最远距离
相当于 以第一个节点为根 构建树
第一次遍历 当前节点的所有节点
然后以这些节点为根 继续遍历这些节点的子节点
直到结束
如果重复了超过n次 队列仍然不空 就是有环
广度优先遍历
1构造 遍历数组 为遍历过的 标记 -1
2 选择一个未遍历过节点 找一个未遍历过的子节点
3 这个未遍历过的子节点的标记位 为父节点标记位值 +1
4 遍历完全部节点
遍历标记位数组 最大值 即为 距离该点的最远值
如果重复了超过n次 就是有环
网友评论