力扣-160.相交链表

题目描述

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

图示两个链表在节点 c1 开始相交:

题目数据 保证 整个链式结构中不存在环。

注意 ,函数返回结果后,链表必须 保持其原始结构 。

cpp 复制代码
class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        ListNode *p1=headA;
        ListNode *p2=headB;
        while (p1!=p2){
            if(p1!= nullptr){
                p1=p1->next;
            } else{
                p1=headB;
            }
            if(p2!= nullptr){
                p2=p2->next;
            } else{
                p2=headA;
            }
        }
        return p1;
    }
};

小结:链表题好久没做了,从这里重新回忆起来链表的内容,这道题思路很巧妙,如图(来自力扣题解)第一个指针p1走a+b-c,第二个指针走b+a-c,如果有公共结点,那么按照这种遍历方法一定会重合

相关推荐
朝朝辞暮i8 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法
青梅橘子皮8 小时前
Blue---二分算法(二分查找与二分答案)
算法
长河8 小时前
Java的GC(垃圾回收)中,标记无用对象的核心方法是可达性分析算法
java·jvm·算法
月光船幽幽8 小时前
加性偏移外推提升参数识别可靠性
python·算法
Ivanqhz9 小时前
层归一化、残差、前馈网络与激活函数简述
服务器·数据库·人工智能·深度学习·算法
不会就选b10 小时前
算法日常・每日刷题--<动态规划>3
数据结构·算法
-dzk-11 小时前
【堆】LC 347.前 K 个高频元素
算法·堆
H.莓飛11 小时前
【数据结构】栈_OJ题
linux·数据结构·算法·centos
Zootopia62611 小时前
多架 eVTOL集群排班调度方案思考
人工智能·算法·数学建模·matlab·动态规划·无人机·evtol
和裕11 小时前
年度框架直供 vs 零散按需采购:定制纸箱采购成本、交付与服务核心区别全对比
大数据·运维·网络·人工智能·算法