题意:

  给两个链表,他们的后部分可能有公共点。请返回第一个公共节点的地址?若不重叠就返回null。

思路:

  用时间O(n)和空间O(1)的做法。此题数据弱有些弱。

  方法(1)假设两个链表A和B,用两个指针分别按顺序遍历AB和BA,这AB和BA肯定等长的。如果他们有公共点,那么按照这样走必定会在某个点相遇。所以只要预先判断是否有公共点,这只需要用两个指针分别指向A和B的链尾判断是否相同即可(这一步可以使用更简单的方法,增加1个计数器,判断指针1是否已经遍历过AB了)。

 /**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode *L1=headA;
ListNode *L2=headB;
//若无交点,且AB等长,那么他们会在null处相遇,退出。
//先判断是否有交点先。
while(L1&&L1->next) L1=L1->next;
while(L2&&L2->next) L2=L2->next;
if(L1!=L2) return NULL;
L1=headA;
L2=headB;
while(L1!=L2)
{
if(L1) L1=L1->next;
else L1=headB; if(L2) L2=L2->next;
else L2=headA;
}
return L1;
}
};

AC代码

  方法(2)先统计链A和B的长度,假设A长,那么指针1先走|A|-|B|步,然后再同时走,若有公共点必定会相遇。

最新文章

  1. ThinkPHP3快速入门教程二:数据CURD
  2. 通过Robocopy+DOS 命令+Windows排程实现自动备份(将特定文件/目录备份至自动创建的以年月日命名的目标目录)
  3. vm中centos7配置静态ip访问外网
  4. DNX/ASP.NET 5的xUnit入门向导
  5. Win10 + VS2015 下编译 Qt5.6.0
  6. ExtJS组件的xtype属性列表
  7. VC5509的通用GEL代码
  8. MySQL数据库能够用随意ip连接訪问的方法
  9. 数据库连接字符串大全 资料引用:http://www.knowsky.com/339545.html
  10. MySQL Online DDL 工具之pt-online-schema-change
  11. 当LinkButton无效时,光标不显示为手型
  12. HTML块
  13. WCF技术剖析之二十: 服务在WCF体系中是如何被描述的?
  14. 用百度API实现热(WIFI)、GPS、基站定位
  15. 前端到后台ThinkPHP开发整站(7)
  16. [bzoj4236]JOIOJI
  17. JS-词法作用域 作用域链
  18. visual studio 2013的使用和单元测试
  19. 11:HTML5 发展史
  20. (1.14)mysql锁问题之MyIsam

热门文章

  1. Keil V4.72升级到V5.1X之后
  2. EXTJS 4.2 日期控件
  3. easy ui datagrid 数据绑定
  4. Hibernate从入门到精通(六)一对一双向关联映射
  5. springmvc整合redis架构搭建实例
  6. 【BZOJ 1009】 [HNOI2008]GT考试
  7. bnuoj 1071 拼图++(BFS+康拓展开)
  8. [转载]自定义ASP.NET MVC Html辅助方法 TagBuilder
  9. 【leetcode】4Sum(middle)
  10. SaaS系列介绍之十: SaaS的商业模式