首页 > 试题广场 >

一个长度为100的循环链表,指针A和指针B都指向了链表中的同

[填空题]
一个长度为100的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,最少需要同时移动1步A和B才能再次指向同一个节点
设X步后相遇,必定是B比A多跑一圈那么就有3X=100+X,X=50
发表于 2018-01-10 15:35:33 回复(1)
解:
    a:代表A跑的圈数,b:代表B跑的圈数,一圈是360度
    A一步走360/100=3.6度,B一步走3*3.6=10.8度。
    n:走的步数
    3.6*n-360*a = 10.8*n - 360b;
    ==>50(b-a) = n
    ==>当b-a=0时,代表AB不动,如果是下次相遇,则b-a=1
    ==>n=50
发表于 2018-01-10 11:09:39 回复(0)
再次重逢必定是B比A多跑了一个循环,已知B比A快2步,一个循环100,所以100/2
发表于 2018-01-07 21:52:54 回复(0)
每次快两步,故50次快100步,也就是超了一圈
发表于 2020-04-03 15:17:18 回复(0)
好后悔没有好好读书
发表于 2018-02-21 13:36:56 回复(1)
A一次动一步,B一次动三步,二者相差两步,100÷2=50
发表于 2018-01-07 16:36:51 回复(0)