【问题描述】[简单]

【解答思路】

1. 双指针法



时间复杂度:O(N^2) 空间复杂度:O(1)

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA == null || headB == null) return null;ListNode pA = headA, pB = headB;while (pA != pB) {pA = pA == null ? headB : pA.next;pB = pB == null ? headA : pB.next;}return pA;
}
2. 双链指针同时移动,确保同时到链表尾


时间复杂度:O(N+M) 空间复杂度:O(1)

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {int lengthA = getLength(headA), lengthB = getLength(headB);ListNode a = headA, b = headB;if(lengthA > lengthB){for(int i = 0; i < lengthA - lengthB; i++)a = a.next;} else {for(int i = 0; i < lengthB - lengthA; i++)b = b.next;}while(a != b){a = a.next;b = b.next;}return a;}private int getLength(ListNode head){int length = 0;for(ListNode temp = head; temp != null; temp = temp.next, length++);return length;}

【总结】

1. 链表常见思路 双指针
2. 链表问题 画图

转载链接:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/solution/mian-shi-ti-52java-shuang-zhi-zhen-da-bai-100-by-u/
转载链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/solution/tu-jie-xiang-jiao-lian-biao-by-user7208t/

[剑指offer]面试题第[52]题[Leedcode][第160题][JAVA][相交链表][双指针]相关推荐

  1. [剑指offer]面试题13:在O(1)时间删除链表结点

    面试题13:在O(1)时间删除链表结点 题目:给定单向链表的头指针和一个结点指针,定义一个函数在 O(1)时间删除该结点.链表结点与函数的定义如下: struct ListNode {int valu ...

  2. 剑指offer面试题13扩展------Linus:利用二级指针删除单向链表

    Torvalds大婶:很多人不了解如何写核心底层代码 Torvalds大婶在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针 ...

  3. 剑指Offer - 面试题21. 调整数组顺序使奇数位于偶数前面(双指针,原地算法)

    1. 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输出:[1,3,2,4 ...

  4. 剑指Offer:面试题33——把数组排成最小的数(java实现)(未完待续)

    问题描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路1: ...

  5. [剑指offer]面试题第[68-2]题[Leetcode][第236题][JAVA][二叉搜索树的最近公共祖先][递归]

    [问题描述][中等] 235/68-1 搜索二叉树 236/68-2 二叉树 [解答思路] 递归 时间复杂度:O(N) 空间复杂度:O(N) 情况 1. , 2. , 3. , 4. 的展开写法如下. ...

  6. [剑指offer]面试题第[57]题[Leetcode][第167题][JAVA][和为s的两个数字][两数之和][HashSet][二分][双指针]

    [剑指offer]面试题第[57]题[Leetcode][第167题][第1题] 有序无序之分 题目输出不同之分 以下解法按照[剑指offer]面试题第[57]题进行题解 [问题描述][简单] 输入一 ...

  7. 剑指offer——面试题52:构建乘积数组

    剑指offer--面试题52:构建乘积数组 Solution1: 自己想出来的笨蛋算法! class Solution { public:vector<int> multiply(cons ...

  8. 算法题001 剑指Offer 面试题三:二维数组中的查找

    剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...

  9. 【剑指Offer面试题】 九度OJ1510:替换空格

    c/c++ 中的字符串以"\0"作为结尾符.这样每一个字符串都有一个额外字符的开销. 以下代码将造成内存越界. char str[10]; strcpy(str, "01 ...

最新文章

  1. mfc removemenu 静态菜单 删除_循序渐进的升级,静态体验新款奥迪 A4L
  2. AWS — AWS ECS
  3. unix cut命令
  4. ActiveMq C#客户端 消息队列的使用(存和取)
  5. 拿下“[warn] (OS 64)指定的网络名不再可用”错误
  6. 网络传输中的反码求和算法
  7. [翻译] 物理引擎javascript实现
  8. 洛谷 P2488 [SDOI2011]工作安排
  9. linux 下配置邮件发送功能
  10. Android 8.1 SystemUI之状态栏、下拉菜单通知、导航栏分析(一)
  11. 《计算机组成原理实验》演示与仿真课件的设计与制作
  12. 学士后java单元项目答案_北大青鸟学士后java工程师第二单元项目源代码
  13. mupdf添加图片水印_在博客园里给图片加水印(canvas + drag)
  14. iptables中DNAT、SNAT和MASQUERADE的理解及限速syn
  15. 如何快速制作一个漂亮的生日祝福网站
  16. win10怎么取消开机密码
  17. 第十一次 Java作业
  18. 机器学习(1)——周志华
  19. 嵌入式软件异步编程:请求的多阶段异步处理
  20. GDT(全居描述符表)和LDT(局部描述符表)

热门文章

  1. 最大和 -- 最大子矩阵
  2. C#判断点和直线的位置关系
  3. 存储过程里调用另一个存储过程的值
  4. 【C#】【引用加原创】C#实现kalman滤波
  5. CSS命名规范(建议版)(转)
  6. 暴走大侠找不到服务器了,《暴走大侠》常见问题汇总(图文)
  7. 微信小程序 - 用户进入客服会话会在右下角显示可能要发送的小程序提示
  8. 安卓如何修改华强北二代耳机敲击指令?
  9. java三大特性——封装,继承,多态
  10. Bitmap添加文字水印