算法6:相交链表

题目链接

解析:

完整代码:

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
typedef struct ListNode ListNode;
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        //1.两个链表的长度
       ListNode* pa = headA;
       ListNode* pb = headB;
       int sizeA = 0, sizeB =0;
       while(pa)
       {
        ++sizeA;
        pa = pa ->next;
       } 
        while(pb)
       {
        ++sizeB;
        pb = pb ->next;
       } 
       int gap = abs(sizeA - sizeB);
       ListNode* longlist = headA;
       ListNode* shortlist = headB;
       if(sizeA < sizeB)
       {
        longlist = headB;
        shortlist = headA;
       }
       while(gap--)
       {
        //让长链表先走
        longlist = longlist->next;
       }
       while(longlist)
       {
        if(longlist == shortlist)
            return longlist;   //shortlist
        longlist = longlist ->next;
        shortlist = shortlist ->next;
       }
       //跳出循环,两个链表不相等
       return NULL;
        
    }
};
相关推荐
汀、人工智能4 小时前
[特殊字符] 第21课:最长有效括号
数据结构·算法·数据库架构·图论·bfs·最长有效括号
Boop_wu5 小时前
[Java 算法] 字符串
linux·运维·服务器·数据结构·算法·leetcode
故事和你915 小时前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
Fcy6485 小时前
算法基础详解(三)前缀和与差分算法
算法·前缀和·差分
kvo7f2JTy6 小时前
基于机器学习算法的web入侵检测系统设计与实现
前端·算法·机器学习
List<String> error_P6 小时前
蓝桥杯最后几天冲刺:暴力大法(一)
算法·职场和发展·蓝桥杯
迈巴赫车主7 小时前
蓝桥杯3500阶乘求和java
java·开发语言·数据结构·职场和发展·蓝桥杯
流云鹤7 小时前
Codeforces Round 1090 (Div. 4)
c++·算法
wljy17 小时前
第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(个人见解,已完结)
c语言·c++·算法·蓝桥杯·stl
高一要励志成为佬8 小时前
【数据结构】算法复杂度
数据结构