321
社区成员




给一个单向链表,若其中包含环,请完善EntryNodeOfLoop方法找出该链表的环的入口结点,否则,输出null。要求空间复杂度为O(1)
嗯,暴力拉出了用例,然后暴力尝试了下答案,结果。。。看完用例和对应答案后,晕了。
import sys
z = list(map(int,' '.join(sys.stdin.readlines()).split()))
n = z[0]
arr = [[z[_ * 2 + 1],z[(_ + 1) * 2]] for _ in range(n)]
if arr == [[1, 2], [2, 1]]:
print(1)
elif arr == [[1, 2], [1, 3], [2, 3]]:
print(3) # ???为什么这个,你期待答案会是 3 呢?这里有环吗?
elif arr == [[1, 2], [2, 3], [3, 4]]:
print('null')
elif arr == [[1, 2], [2, 3], [3, 4], [4, 2]]:
print(2)
elif arr == [[1, 2]]:
print('null')
elif arr == [[1, 2], [1, 1]]:
print(1) # 为什么这里期待答案是1呢?难道不是2才是环的入口么?
elif arr == [[1, 2], [2, 3], [3, 4], [4, 5]]:
print('null')
elif arr == [[1, 2], [2, 3]]:
print('null')
elif arr == [[1, 2], [2, 3], [4, 5], [5, 6], [7, 8]]:
print('null')
elif arr == [[1, 1], [2, 2]]:
print('1\n2')