LeetCode 刷题【160. 相交链表】

160. 相交链表

自己做

解:快慢指针

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) {
        int len1 = 0;
        int len2 = 0;
        ListNode p = headA;
        ListNode q = headB;
        
        while(p != null){
            len1++;
            p = p.next;
        }

        while(q != null){
            len2++;
            q = q.next;
        }

        p = headA;
        q = headB;

        if(len1 < len2)
            for(int i = 0; i < len2 - len1; i++)
                q = q.next;
        else
            for(int i = 0; i < len1 - len2; i++)
                p = p.next;

        while(p != null && q != null && p != q){
            p = p.next;
            q = q.next;
        }        

        if(p == q)
            return p;
        else
            return null;
    }
}
相关推荐
少睡点觉2 小时前
LeetCode 238. 除自身以外数组的乘积 问题分析+解析
java·算法·leetcode
YoungHong19922 小时前
面试经典150题[066]:分隔链表(LeetCode 86)
leetcode·链表·面试
大千AI助手2 小时前
多叉树:核心概念、算法实现与全领域应用
人工智能·算法·决策树·机器学习··多叉树·大千ai助手
一只老丸2 小时前
HOT100题打卡第38天——贪心算法
算法·贪心算法
普通网友2 小时前
高性能TCP服务器设计
开发语言·c++·算法
醒过来摸鱼2 小时前
9.12 sinc插值
python·线性代数·算法·numpy
普通网友2 小时前
C++与硬件交互编程
开发语言·c++·算法
liliangcsdn2 小时前
EnsembleRetriever中的倒数融合排序算法
算法·排序算法
HUTAC2 小时前
重要排序算法(更新ing)
数据结构·算法