【力扣】相交链表

🖊作者 : Djx_hmbb
📘专栏 : 数据结构
😆今日分享 : 为什么天气热会变得暴躁?
答 : 暴躁的原因可能与血清素有关。血清素是人体内的“情绪管理大师”,对抑郁和焦虑有重要的调节作用。温度升高时,血清素受体的活动水平也随之升高,我们的情绪就会变得不稳定,开始焦虑、抑郁。温度高于 21℃ 会减少喜悦、幸福等积极情绪,增加压力、愤怒等负面情绪,还会让人感觉到疲劳和精力不足 。
请添加图片描述

✔题目链接

【力扣】相交链表

✔题目

在这里插入图片描述

✔解题思路:

请添加图片描述

  • 先计算出两个链表的长度,
  • 让长的链表先走相差的长度,然后两个链表同时走,
  • 直到遇到相同的节点,即为第一个公共节点 .

✔代码详情:

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
    int lenA = 0 ,lenB = 0;
    struct ListNode *curA = headA ,*curB = headB;
    struct ListNode* lista = headA ,*listb = headB;
//计算A的长度
    while(curA){
        ++lenA;
        curA = curA->next;
    }

//计算B的长度
    while(curB){
        ++lenB;
        curB = curB->next;
    }
//计算差值的绝对值
    int gap = abs(lenA - lenB);

//长的先移动
if(lenA < lenB){
    while(gap--){
        listb = listb->next;
    }
}
else{
    while(gap--){
        lista = lista->next;
    }
}
//同时移动
while(lista){
    if(lista == listb){
        return lista;
    }
    lista = lista->next;
    listb = listb->next;
}
return NULL;
}

感谢家人的阅读,若有不准确的地方 欢迎在评论区指正!

家人们,点个请添加图片描述再走呗~

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D. Star.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值