Intersection of Two Linked Lists

原题链接Intersection of Two Linked Lists

两个链表,从某个节点开始相交,找到相交节点

方法很多,简单列举一下

  • 将其中一个链表的头尾相连,问题转化为求环入口节点
  • 用两个栈分别记录两个链表的节点,再弹出,找到最后一个相等的节点
  • 将长的链表移动长度差的距离,然后同时移动两个链表,找到第一个相等的节点

采用第三种方法,代码如下

/*** 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) {auto lenA = listLength(headA);auto lenB = listLength(headB);if(lenA > lenB){for(auto i = 0; i != lenA - lenB; ++i)headA = headA->next;}else{for(auto i = 0; i != lenB - lenA; ++i)headB = headB->next;}while(headA && headB && headA != headB){headA = headA->next;headB = headB->next;}return headA;}
private:int listLength(ListNode* head){int len = 0;while(head){++len;head = head->next;}return len;}
};

每天一道LeetCode-----寻找两个链表的交点相关推荐

  1. 每日一道 LeetCode (36):相交链表

    每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...

  2. [LeetCode] Intersection of Two Linked Lists 求两个链表的交点

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...

  3. C语言链表交换相邻节点,LeetCode 24--两两交换链表中的节点 ( Swap Nodes in Pairs ) ( C语言版 )...

    题目描述  : 解题思路 : 分为两种情况处理 , 当要交换的节点是链表的前两个节点时 , 当交换的节点非前两个节点时 ; 代码如下 : /** * Definition for singly-lin ...

  4. LeetCode——寻找两个有序数组的中位数

    题目: 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 nu ...

  5. leetcode 寻找两个有序数组的中位数 hard

    题目链接 这篇文章写得很全面:https://www.cnblogs.com/grandyang/p/4465932.html 摘抄如下: 这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为O ...

  6. leetcode 寻找两个有序数组的中位数

    2085 / 2085 个通过测试用例 状态:通过 执行用时:4 ms 内存消耗:47.6 MB 提交时间:6 月,4 周之前 class Solution {public double findMe ...

  7. LeetCode实战:相交链表

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Write a pro ...

  8. leetcode刷题笔记-链表的使用

    一.单链表的基础:增删改查 问题:设计一个单链表,要求实现其增删改查功能.707. 设计链表 问题分析 往链表中添加元素的步骤 往链表中删除元素的步骤 注意:对于单链表来说,添加一个无用的头节点,再对 ...

  9. 求两个链表的第一个公共结点各种情况及三种思路分析

    转自:http://blog.csdn.net/ssopp24/article/details/72377184 1.寻找两个链表的第一个公共结//这道题可以有很多种思路, 我们按照, 有坏到好的顺序 ...

最新文章

  1. 利用or构造SQL巧妙注射
  2. 关于keras的class_weight与sample_weight(解决样本不均衡或类别不均衡问题)
  3. 只会使用 WaitGroup?你应该学习下 ErrGroup!
  4. java里面有控制器吗_mvc中 控制器部分可以使用Javabean完成吗?为什么?
  5. shiro身份验证测试
  6. python2转python3代码_2to3 – 自动Python 2到3代码翻译 – 开发工具(Python教程)(参考资料)...
  7. Ubuntu16.04上安装SU(Seismic Unix)的基本步骤
  8. 最全HTML与CSS基础总结,不进来看看吗?
  9. MVVM模式与Reactive Extensions 学习与思考
  10. 机器学习算法的调试 —— 梯度检验(Gradient Checking)
  11. etcdctl的使用
  12. phpstorm的html网页乱码
  13. MS08067安全培训讲师(高薪、专兼职)
  14. Scintilla开源库使用指南(一)
  15. ADS1112|MS1112|16位AD转换芯片|国产兼容PIN-TO-PIN。兼容替代无需修改软硬件
  16. win10局域网 开启网络发现,无法找到本机
  17. 量子计算机epr,从EPR到量子信息[转] - 物理 - 小木虫 - 学术 科研 互动社区
  18. 个人空间岁末大回报活动12月16日获奖名单
  19. uniapp显示服务器请求超时,uniapp发布H5连接服务器超时
  20. Java为PDF文档加密

热门文章

  1. Java黑皮书课后题第2章:*2.19(几何:三角形面积)编写程序,提示用户输入三角形的三个点(x1, y1)(x2, y2)(x3, y3),然后显示它的面积
  2. STL源码剖析---STL容器特征总结(含迭代器失效)
  3. 程序员面试100题之十一:数组循环移位
  4. nfs+inotify
  5. 20170825 - Q - 集合框架 、 集合操作 —— 线性表
  6. Entity Framework 与 LINQ to SQL
  7. Inna and Binary Logic
  8. 将图片转换成16进制的代码
  9. 378. Kth Smallest Element in a Sorted Matrix 有序矩阵中第K小的元素
  10. 用几十行代码实现python中英文分词