您的位置:首页 > 编程语言

编程之美:第三章 结构之法 3.6编程判断两个链表是否交叉

2015-08-03 00:50 489 查看
/*
编程判断两个链表是否交叉:(本质判断两个链表是否有公共结点)
给出两个单向链表的头指针,如h1,h2,判断这两个链表是相交。假设两个链表均不带环。
h1->->->
          ->->->...->NULL
h2->->->
这道题目:
参见剑指,王道数据结构
让长链表先走iLongLen - iShortLen步之后,两个链表一起走
因为两个链表相交,这两个链表会有共同的节点,而节点地址是相同的

解法三:
由于两个链表都没有换,可以把第二个链表接在第一个链表后面。如果得到的链表有环,则说明这两个链表相交。

解法四:
如果相交,那么两个链表的最后一个节点一定是共有的
先遍历第一个链表,记住最后一个节点,然后遍历第二个链表,到最后一个节点时和第一个链表的最后一个节点做比较,如果相同,那么相交,
时间复杂度为O(Length(h1) + Length(h2))
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: