(每日一练28774)题目名称:环形单向链表

文盲老顾 文盲老顾 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

给一个单向链表,若其中包含环,请完善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')

...全文
评论
收藏 已收藏
分享
返回顶部
文盲老顾
文盲老顾 新星创作者: 信息安全技术领域 新星创作者: 信息安全技术领域领域专家: 数据库技术领域 领域专家: 数据库技术领域
老顾的一亩三分地 320 成员 160 内容