面试题02.07链表相交


public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode curA = headA;ListNode curB = headB;int lenA = 0, lenB = 0;while(curA != null){//求链表A的长度lenA++;curA = curA.next;}while(curB != null){//求链表B的长度lenB++;curB = curB.next;}curA = headA;curB = headB;// 让curA为最长链表的头,lenA为其长度if(lenB > lenA){//1. swap(lenA,lenB)int tmplen = lenA;lenA = lenB;lenB = tmplen;//2. swap(curA,curB)ListNode tmpNode = curA;curA = curB;curB = tmpNode;}// 求长度差int gap = lenA - lenB;// 让curA和curB在同一起点上(末尾位置对齐)while(gap-- > 0){curA = curA.next;}// 遍历curA和curB,遇到相同则直接返回while(curA != null){if(curA == curB){return curA;}curA = curA.next;curB = curB.next;}return null;}
}

面试题02.07.链表相交相关推荐

  1. [LeetCode] 面试题 02.07. 链表相交

    LeetCode 面试题 02.07.链表相交 思路 题目的本意其实就是求两个链表相交处结点的指针,并返回该结点指针 步骤: Step1.分别用两个指针curA.curB指向两个链表A.B的头结点 S ...

  2. LeetCode-链表-面试题 02.07. 链表相交

    描述 02.07. 链表相交 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点.如果两个链表没有交点,返回 null . 图示两个链表在节点 c1 开始相交 ...

  3. 面试题 02.07. 链表相交

    给定两个(单向)链表,判定它们是否相交并返回交点.请注意相交的定义基于节点的引用,而不是基于节点的值.换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表 ...

  4. leetcode面试题 02.07. 链表相交

    一:题目 二:思路 1.这道题我们是需要找到一个结点,并且从这个结点往后的结点都相等 2.我们需要将两个链表 右对齐 3.然后将长链表的指针移动到和短链表头结点相同的位置 4.接下来就是比较指针,当一 ...

  5. 力扣(707.面试题02.07)补9.16

    707.设计链表 可以,真的是一个工程类的题目,处处要考虑细节,其实20分钟基本能写好,但是改各种细节又要40分钟,就是各种bug,总共花了一个小时才正确. class MyLinkedList { ...

  6. 面试题 02.05. 链表求和

    面试题 02.05. 链表求和 给定两个用链表表示的整数,每个节点包含一个数位. 这些数位是反向存放的,也就是个位排在链表首部. 编写函数对这两个整数求和,并用链表形式返回结果. 示例: 输入:(7 ...

  7. 代码随想录(day04)-LeetCode:24、19、面试题02.07、142

    代码随想录:dayo4 1. [24]两两交换链表中的节点 虚拟头结点实现 递归实现 2.[19]**删除链表的倒数第N个节点** 双指针算法 3. 面试题[02.07]:链表相交 4.[142]环形 ...

  8. 程序员面试金典 - 面试题 02.05. 链表求和

    1. 题目 给定两个用链表表示的整数,每个节点包含一个数位. 这些数位是反向存放的,也就是个位排在链表首部. 编写函数对这两个整数求和,并用链表形式返回结果. 示例: 输入:(7 -> 1 -& ...

  9. LeetCode Algorithm 面试题 02.06. 回文链表

    面试题 02.06. 回文链表 Ideas 这题当时左神也讲过,用的是快慢指针,不过感觉好麻烦,不如直接遍历链表,把元素值存到数组,然后判断是不是回文数组就OK了. Code C++ class So ...

最新文章

  1. UICollectionView的headerView、footerView使用以及与UITableView加载headerView、footerView的区别...
  2. Shall的变量功能
  3. Python subprocess模块
  4. tomcat7.0.8的高级应用-apr1.4.2安装
  5. vectorobserver obs是做什么_带着色碳纤维主体的OBS雪佛兰皮卡
  6. c++Insertion Sort插入排序的实现算法(附完整源码)
  7. Hadoop 集群的三种方式
  8. 2018年“百家姓”出炉,新生儿爆款名字是这些......
  9. 斗地主AI算法——第十章の被动出牌(4)
  10. MySQL实验7存储过程_mySQL(7)-存储过程
  11. 几何画板200个经典课件_2020国学起名:7部国学经典,200个大气独特的好名字
  12. LiteIDE调试工具delve
  13. 神经损伤怎么康复好 成都顾连康复医院专科专治
  14. 计算机显示u盘隐藏分区,如何查看及删除u盘的隐藏分区
  15. 希尔伯特变换求包络原理
  16. 离散数学-数理逻辑知识整理(修改版)
  17. Windows10永久关闭Windows Defender
  18. 攻击重放技术以及什么是重放攻击?
  19. 对比了论坛,博客和微博
  20. 路由 OSPF常见4种网络类型MA、P2P、NBMA、P2MP、OSPF报头字段信息简介。

热门文章

  1. LVS负载均衡DR模式+keepalived
  2. PDF打印机常见问题汇总
  3. 淘宝店铺类目怎么删除
  4. Struts,Spring,Hibernate面试题总结
  5. 【To Understand!】LeetCode 117. Populating Next Right Pointers in Each Node II
  6. Anaconda, conda, pyenv, virtualenv的区别
  7. vsftpd搭建及配置参数
  8. HTML5项目笔记8:使用HTML5 的跨域通信机制进行数据同步
  9. 《Android开发从零开始》——31.模拟Http请求
  10. Mysql为什么多个大版本并行发布的个人理解