50. 腾讯面试题:两个单链表相交,求开始相交的点
来源:互联网 发布:vivo手机怎么备份数据 编辑:程序博客网 时间:2024/06/10 08:35
腾讯面试题:两个链表相交,求开始相交的点
腾讯的技术面试很喜欢问算法类的问题,准备去腾讯面试前,要好好看下算法的东西。
这题如果求两个链表是否相交,或者求相交的终点好求,要求开始相交的点,不好求。
刚开始我的思路一直停留再相交的终点做文章,比如,
1)知道终点,就知道终点的上一个点,判断它是不是,再找上上一个点,以此类推。。。可惜这是个单链表,不能逆向遍历。
使用这种办法,就需要遍历n遍,效率太太低。
2)终点的next指针,只想首指针,这样找。。。
后面想了很久,想到了方法。
先遍历两个链表,求得它们的长度,n, m, 长度长得链表先走 |n-m| 步,再同时走,没走一步都看指针是否相等,相等则为首次相交得点,跳出循环。
List* find first(List* l1, List*l2){int len1 = 0, len2 = 0;List* p = l1;while( p ){p = p->next;len1 ++;}p = l2; while( p ){p = p->next;len1 ++;}List* p1 = l1;List* p2 = l2;int k = 0;if(len1 > len2){while(k < len1 - len2){p1 = p1->next;k ++;}}else if(len1 < len2){while(k < len1 - len2){p1 = p1->next;k ++;}}while(p1){if(p1 == p2) return p1;p1 = p1->next;p2 = p2->next;}return NULL;}
0 0
- 50. 腾讯面试题:两个单链表相交,求开始相交的点
- 两个单链表相交,求开始相交的点
- 【面试题】-判断两个单链表是否相交并求出相交的第一结点
- 10.两个单链表相交,计算相交点
- /***/面试题:求相交链表的交点
- Opencv求两个矩形是否相交,以及相交的比值
- Opencv求两个矩形是否相交,以及相交的比值
- 求两个相交链表相交的第一个元素
- 求两个单链表是否相交(包括环的问题)
- 求两个相交链表的交点
- poj2546 求两个圆相交的面积
- 求两个相交链表的交点
- 两个链表相交,计算相交点
- 两个单链表相交的一系列问题
- 两个单链表相交的一系列问题
- 两个单链表相交的一系列问题
- 两个单链表(可能有环)是否相交,若相交则返回第一个相交点
- 判断两个不带环链表是否相交?若相交,求入口点。
- 面试中常见的50个面试题目及答案
- Js_dom_02
- JS this
- 【Android】init.rc
- 搬寝室
- 50. 腾讯面试题:两个单链表相交,求开始相交的点
- HDU4940
- 常用相似性、相关性度量指标
- 一些有意思的面试题
- JavaScript闭包---笔记摘抄
- ssh配置连接
- ADF知识点
- 011
- spring.net 整合Webservice小计