一:题目


二:思路

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

三:上码

/*** 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) {/**思路:1.这道题我们是需要找到一个结点,并且从这个结点往后的结点都相等2.我们需要将两个链表 右对齐3.然后将长链表的指针移动到和短链表头结点相同的位置4.接下来就是比较指针,当一个指针相同也就意味着往后的结点的数值也相等*/ListNode* node1 = headA;ListNode* node2 = headB;//求取链表的长度是为了右对齐int lenA = 0;int lenB = 0;while(node1 != NULL){//求链表A的长度node1 = node1->next;lenA++;}while(node2 != NULL){//求取链表B的长度node2 = node2->next;lenB++;}node1 = headA;//因为上方的操作让node1,node2已经指向了NULLnode2 = headB;//我们让node1  lenA为最长的长度if(lenB > lenA){swap(lenA,lenB);swap(node1,node2);}int poor = lenA - lenB;//让长链表的指针和短链表首节点位置相同  即是(右对齐)while(poor--){node1 = node1->next;}//寻找相同的指针(只要指针相同那么指针往后的结点所对应的数值也相等)while(node1 != NULL){if(node1 == node2){return node1;}node1 = node1->next;node2 =  node2->next;}return NULL;}
};


渣渣杰又水了一道 这个题有意思的是我们需要理解 比较的是指针相等(当指针相等的时候我们就可以知道其往后的数值也就相等了),这可比数组牛逼多了,数组还得一个一个比较,链表yyds!!!

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

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

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

  2. 面试题02.07.链表相交

    面试题02.07链表相交 public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode hea ...

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

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

  4. 面试题 02.07. 链表相交

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

  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面试题 02.08. 环路检测

    给定一个有环链表,实现一个算法返回环路的开头节点. 有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路. 示例 1: 输入:head = [3,2,0,-4] ...

最新文章

  1. oracle闪回 分区,Oracle 闪回区(Oracle Flash recovery area)
  2. 51CTO-风哥-ORACLE学习计划(持续更新中)
  3. Hibernat之关系的处理多对多
  4. Java Script基础(九) 下拉列表对象
  5. [转]paint,update和repaint三种awt方法
  6. java通讯录管理系统答辩_java版通讯录管理系统
  7. Python批量移动文件到指定目录
  8. 【新品重磅发布】FOHEART·HF1面部表情捕捉头盔
  9. Memcached详解
  10. app移动端连接nginx时,总报错recv() failed (104: Connection reset by peer) while proxying upgraded connection
  11. 银河麒麟(kylin)V10桌面版
  12. 视频聊天开发包的介绍
  13. 1、R5为ISP,只能进行ip地址配置:其所有接口配置为公有ip地切 2、R1与R5间使用PPP的PAP认证,R5为主认证方;R2与R5间使用PPP的chap认证 R5为主认证方;R3与R5间使用H
  14. 中国商界的顶级秘法之二:民营企业的五大策划法则
  15. 香港税务局提醒:香港公司需警惕病毒欺骗邮件
  16. 大白话讲解JDK源码系列:从头到尾再讲一遍ThreadLocal
  17. STM32CUBEMX开发GD32F303(12)----输出PWM及修改PWM频率与占空比
  18. openwrt配置AIR724实现RNDIS上网
  19. springboot——数据层访问搭建 集成Duid连接池
  20. Xbox One 与PS4的终极PK

热门文章

  1. C# 快捷键/hotkey简单例子
  2. c语言时钟报告,C语言图形时钟课程设计实验报告
  3. spark写出分布式的训练算法_利用 Spark 和 scikit-learn 将你的模型训练加快 100 倍...
  4. 5训练需要更改参数吗_糖尿病病人需要多喝水吗?多喝水的5大好处,了解一下...
  5. [转]再见 NoSQL!
  6. 中国区域Modis行列号(附Shapefile文件下载)
  7. C语言试题三之计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5))
  8. ios 销毁当前页面重新开启_问:如何强制销毁iOS中的视图控制器?
  9. 交友软件上的两种网友类型......
  10. 老是担心数学学不好?这些基础是时候正视了!