/**
* 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) {
/**
定义两个指针, 第一轮让两个到达末尾的节点指向另一个链表的头部, 最后如果相遇则为交点(在第一轮移动中恰好抹除了长度差)
两个指针等于移动了相同的距离, 有交点就返回, 无交点就是各走了两条指针的长度
**/
if(headA == NULL || headB == NULL) return NULL;
ListNode *pA = headA, *pB = headB;
// 在这里第一轮体现在pA和pB第一次到达尾部会移向另一链表的表头, 而第二轮体现在如果pA或pB相交就返回交点, 不相交最后就是NULL==NULL
while(pA != pB) {
pA = pA == NULL ? headB : pA->next;
pB = pB == NULL ? headA : pB->next;
}
return pA;
}
};

最新文章

  1. PHP 进程详解
  2. winform进程、线程、TreeView递归加载
  3. git remote 相关用法
  4. BZOJ4546(原) : 三元组
  5. ef第一次启动较慢
  6. idea首次提交项目
  7. matlab练习程序(矩形变换为单连通形状)
  8. break , continue , exit
  9. Swift游戏实战-跑酷熊猫 09 移除场景之外的平台
  10. E2 结帐方案如何理解?
  11. BroadcastReceiver
  12. 关于《一步步学习ASP.NET MVC3》系列发布时间的说明
  13. mysql datestamp坑
  14. python 凸包(经纬度) + 面积[近似]
  15. Android开发系列之屏幕密度和单位转换
  16. vue过渡和animate.css结合使用
  17. shiro整合oauth
  18. JS中的运算符和JS中的分支结构
  19. ResultSet集合查询字段名称(转载)
  20. php的语法

热门文章

  1. 用 UniRx 实现 Timeline 式的异步操作
  2. Ribbon负载均衡服务调用
  3. tf
  4. MySQL主从配置This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.
  5. grpc-metadata
  6. protoc-gen-validate (PGV)
  7. AES加密模式
  8. 实现一个List集合中的某个元素的求和
  9. <script>元素
  10. CF460C Present