算法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;
        
    }
};
相关推荐
GuWenyue6 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
我叫洋洋8 小时前
C ++ [ hello world ]
c语言·c++·算法
奋发向前wcx9 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
战族狼魂12 小时前
高频面试题精选:分治与AI Agent架构
人工智能·算法·大模型·大语言模型
李剑一12 小时前
你用过网易的将军令嘛?它底层实现账号保护的原理相当简单粗暴
算法
Scott9999HH12 小时前
告别流量波动玄学!从法拉第电磁定律到底层 C/C++ 流量累积算法,深度解密工业级电磁流量计选型与开发
c语言·c++·算法
中达瑞和-高光谱·多光谱13 小时前
1nm到8nm光谱分辨率,你的应用该选哪款光谱相机?
算法·高光谱·高光谱相机
ChaoZiLL13 小时前
我的数据结构4-栈和队列
数据结构
香辣牛肉饭13 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
miller-tsunami14 小时前
顺序表相关知识点
数据结构·顺序表