求两单链表交点

来源:互联网 发布:magento block加载js 编辑:程序博客网 时间:2024/04/28 00:52

题目:已知两单链表有交点,给出两单链表的头指针,求交点位置。


思路①:自交点至公共尾部的结点都是相同的,则分别遍历两个链表,并将每个结点的指针分别存储在两个数组中,然后从两数组尾部开始比较,到两指针值开始不同时,前一位置即使指向交点的指针。


思路②:分别遍历两链表,得到各自的长度L1、L2,然后长的减短的得L;再从头结点开始,长链表的头指针先向前走L步,然后两指针同步单步往前走,指向相同结点时即是交点。此方法不需额外的存储空间。


思路③:先遍历一个单链表到尾部,然后将尾部的空指针指向另一个单链表的头部,转化为求带环单链表的连接点的问题。解决方法参考:http://blog.sina.com.cn/s/blog_725dd1010100tqwp.html


参考资料:《剑指offer》

0 0