力扣-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,如果有公共结点,那么按照这种遍历方法一定会重合

相关推荐
Dingdangcat8639 分钟前
城市交通多目标检测系统:YOLO11-MAN-FasterCGLU算法优化与实战应用_3
算法·目标检测·目标跟踪
tang&1 小时前
滑动窗口:双指针的优雅舞步,征服连续区间问题的利器
数据结构·算法·哈希算法·滑动窗口
拼命鼠鼠1 小时前
【算法】矩阵链乘法的动态规划算法
算法·矩阵·动态规划
LYFlied2 小时前
【每日算法】LeetCode 17. 电话号码的字母组合
前端·算法·leetcode·面试·职场和发展
式5162 小时前
线性代数(八)非齐次方程组的解的结构
线性代数·算法·机器学习
橘颂TA3 小时前
【剑斩OFFER】算法的暴力美学——翻转对
算法·排序算法·结构与算法
叠叠乐3 小时前
robot_state_publisher 参数
java·前端·算法
hweiyu003 小时前
排序算法:冒泡排序
算法·排序算法
brave and determined3 小时前
CANN训练营 学习(day9)昇腾AscendC算子开发实战:从零到性能冠军
人工智能·算法·机器学习·ai·开发环境·算子开发·昇腾ai
Dave.B4 小时前
用【vtk3DLinearGridCrinkleExtractor】快速提取3D网格相交面
算法·3d·vtk