【LeetCode】【算法】160.相交链表

Leetcode 160. 相交链表

题目描述

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

思路

A+B,一个指针,访问完A访问B;另一个指针,访问完B访问A

若AB相遇则找到相交点,否则无相交点

因为A+B的长度是相等的

代码

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode pA = headA, pB = headB;
        while (pA != null || pB != null){
            if (pA == pB) return pA;

            if (pA == null) {
                pA = headB;
            } else {
                pA = pA.next;
            }
            if (pB == null) {
                pB = headA;
            } else {
                pB = pB.next;
            }
        }
        return null;
    }
}
相关推荐
im_AMBER18 小时前
Leetcode 108 交换链表中的节点
数据结构·笔记·学习·算法·leetcode·链表
2301_7657031418 小时前
C++代码风格检查工具
开发语言·c++·算法
TracyCoder12319 小时前
LeetCode Hot100(14/100)——73. 矩阵置零
算法·leetcode·矩阵
啊阿狸不会拉杆19 小时前
《数字信号处理》第 4 章-快速傅里叶变换 (FFT)
数据结构·人工智能·算法·机器学习·信号处理·数字信号处理·dsp
hrrrrb19 小时前
【算法设计与分析】算法概述
开发语言·python·算法
xqqxqxxq19 小时前
认识数据结构之——图 构建图与应用
数据结构·python·算法
FMRbpm19 小时前
邻接矩阵练习1--------LCP 07.传递信息
数据结构·c++·算法·leetcode·深度优先·新手入门
啊阿狸不会拉杆19 小时前
《数字信号处理》第 1 章 离散时间信号与系统
人工智能·算法·机器学习·信号处理·数字信号处理·dsp
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大19 小时前
C++安全编程指南
开发语言·c++·算法
啊阿狸不会拉杆19 小时前
《数字信号处理》第 2 章 - z 变换与离散时间傅里叶变换(DTFT)
人工智能·算法·机器学习·信号处理·数字信号处理·dsp