把a走一遍,并把每个节点的指针记录下来,放在一个container中(可以在插入的时候排序,这样检索以来比较快),如果发现最后有一个指针已经存在,则说明a有环,不用记录了。然后把b走一便,从头到尾,和a一样也哟记录到另一个container中,边记录边比较当前节点的指针是否在a的container中出现过,如果有,则找到,如果到最后b走完了(NULL结束和自己有环)也没有和a任何节点相同的指针,则没有交叉,结束。复杂度应该是n2.
难道我想的太简单了?还是算法过于简陋?但是MS总是出类似智商或脑筋急转弯的编程题,不知道他们要什么样的结果。估计他们只要你的思维方式而不是结果吧?
难道我想的太简单了?还是算法过于简陋?但是MS总是出类似智商或脑筋急转弯的编程题,不知道他们要什么样的结果。估计他们只要你的思维方式而不是结果吧?