leetcode 160 相交链表

题目

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

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

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

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

思路

A和B为两个指针,不为空时就一直往下走,当A走到链表尾,下次访问B的头结点,同理,B走到链表尾,下次访问A的头结点,两者再次相遇之时,就是公共的节点。

代码

java 复制代码
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode A=headA,B=headB;
        while(A!=B){//A和B不同时,一起往下走
            A = A != null ? A.next : headB;//A不为空,A后移,到尾转B
            B = B != null ? B.next : headA;//B不为空,B后移,到尾转A
        }
        return A;
    
    }
}
相关推荐
wefg115 小时前
【C++】智能指针
开发语言·c++·算法
搂鱼11451415 小时前
一类判断包含颜色整体的题目
算法
Demon--hx15 小时前
[c++]string的三种遍历方式
开发语言·c++·算法
无敌最俊朗@15 小时前
力扣hot100 - 合并两个有序链表21
算法·leetcode·链表
墨染点香15 小时前
LeetCode 刷题【168. Excel 表列名称】
算法·leetcode·职场和发展
hans汉斯16 小时前
基于改进YOLOv11n的无人机红外目标检测算法
大数据·数据库·人工智能·算法·yolo·目标检测·无人机
Swift社区16 小时前
LeetCode 431 - 将 N 叉树编码成二叉树
算法·leetcode·职场和发展
子豪-中国机器人16 小时前
1030-csp 2019 入门级第一轮
算法
关注我立刻回关17 小时前
洛谷平台
算法
Cx330❀17 小时前
C++ map 全面解析:从基础用法到实战技巧
开发语言·c++·算法