讨论一道微软面试题
RT给出两个单向链表的头指针,比如h1、h2,判断链表是否相交,如果不相交返回NULL;
如果相交,返回指向第一个相交节点的指针。要求:时间复杂度控制在O(n)
如果相交,返回指向第一个相交节点的指针。要求:时间复杂度控制在O(n)
-----------------------------------------------------------------------
讨论一下方法...
[此贴子已经被作者于2006-10-23 17:11:25编辑过]
你的可以判断相交的节点..但是同时比较同一位置的节点吖
h1:a->b->c
h2:c->a->b //这样的就没交点了?
你的不如改进下呢,把连个链表连成环,然后用个临时指针来判断每个节点,是否有p1==p2的时候...不过这时间复杂度是好像得是O(n^2)
...再想想
你的可以判断相交的节点..但是同时比较同一位置的节点吖
h1:a->b->c
h2:c->a->b //这样的就没交点了?
你的不如改进下呢,把连个链表连成环,然后用个临时指针来判断每个节点,是否有p1==p2的时候...不过这时间复杂度是好像得是O(n^2)
...再想想
环状也考虑过,就是时间复杂度高了
你的可以判断相交的节点..但是同时比较同一位置的节点吖
什么是相交的结点,举个例子.
(我以为是同一位置的结点就就相交的结点)
[此贴子已经被作者于2006-10-23 20:52:48编辑过]